 ͻ
 			 			    			     
      MAD Doetinchem	 	F L E X B A S E     	by: Dick v.Vlodrop   
 	Netherlands	 			    			     
 Ķ
 									     
   A fast and userfriendly database program which can do (almost) everything
   because the user can design the database card according to his demands.  
 	    VERSION 2.1 WITH ALPHABETIC SORTING ON PREFERENT FIELD	     
 		Suitable for MSX2, MSX2+ and Turbo-R computers. 	     
 Ķ
 									     
 	Supports the use of:  External memorymapper cartridges		     
 			      Video-ram for data storage		     
 			      (Memory management up to 4 Megabytes)	     
 			      DOS1, DOS2 and Harddisk			     
 			      Storage of large datafile on more then 1 disk  
 									     
 Ķ
 									     
   You can decide:  How your electronic cardsystem should look like.	     
 		     Which data should be in it and where.		     
 		     The size of your systemcard. (maximum 19 lines)	     
 									     
    After designing your systemcard with fixed textlines and defining the   
    place and length of the fields to be filled with variable data later, a 
    FLEXBASE workprogram will be generated, which will function with the    
    designed systemcard. You may generate an unlimited number of different  
    FLEXBASE workprograms for several purposes.			     
 									     
 Ķ
 									     
    Build-in arithmetic functions (for max. 5 numeric fields) offer the     
    possibility to use FLEXBASE as a bookkeeping tool for purposes like     
    stock administration, administration of payments by members of compu-   
    ter- or other club etc. or any other system where arithmetic functions  
    are involved. Arithmetic functions can be combined with searchfunctions.
 									     
 Ķ
 									     
    There are single-string and multy-string search functions available,    
    which can act on either a preferent-field, an other (selected) field or 
    on all fields. The multy-string search can handle 1 - 3 searchstrings.  
    The 1st searchstring selects the card, the 2nd an 3rd searchstring      
    examen other data within the selected card for a finer selection. All   
    search functions can be linked to printer-functions.		     
 									     
 Ķ
 									     
    4-Color palette for a colormonitor, adjustable for your favorit colors. 
    For a monochrom monitor there is a so called "highlighted" color sceme. 
    Build in (programmable-) printerdrivers and conversiontables allow      
    using any type printer. Build in printerbuffer up to maximum 128 k.     
 									     
 Ķ
 									     
    User information displayed continuously on a status line.	1 Bottomline 
    will show messages or instructions for the user, which provide an	     
    interactive 100% security-system against faults and/or mistakes.	     
    More detailed information will be displayed in windows, appearing at    
    the right moment or they can be called up as a helpfunction. Messages   
    and windows guide the user through the program. In fact the manual is   
    needed only to get familiar with the many build in options. Once the    
    manual has been read, the user will get sufficient information on the   
    screen to work problemless with the program.			     
 ͼ

		     GENERAL INFORMATION ABOUT FLEXBASE
		    

FLEXBASE makes it possible to design a database (cardsystem) covering your
personal taste and demands. By using a 79 columns textscreen with 26 lines
there remains space for a 19 lines long systemcard. On each line there can be
placed a subscription and/or a field to be filled in. Maximum 5 fields may be
marked as "NUMERIC" field, in which a numeric value must be filled in.

A numeric field is an option, which may be used in stead of an alphanumeric
field. A numeric field has always a fixed length of 21 characters, which
equals the largest possible length for a numeric expression, a (negativ-)
value of double precision. So any numeric value will fit into the preprogram-
med length for a numeric field.

In a numeric field are accepted: Numbers with or without decimal point, values
in hexadecimal- or binairy- or scientific notation (single or double precision)
For any numeric notation the syntax must comform the rules as normally used
with MSX-BASIC. Notation as a power, like 10^12 is not accepted. This example
should be written as either 10E+12 or 10D+12 or 10E12 or 10D12.

The programmable arithmetic functions, the various search functions and the
programmable printerfunctions in combination with the design of a systemcard
are offering an unknow number of applications for the program, like address-
files, librairy for records- or CD-collection, genealogical research files,
stock administration, clubmember files etc. etc. Nearly everything that can be
classified in a cardsystem is possible with  F L E X B A S E . This flexability
is expressed in the name of the program.

The mainprogram "FLEXBASE.COM" has been protected against illegal copying.
Some virusses are build in, which will get active if a copy of the mainprogram
would be made. As a result the copied program will not function properly
anymore. These virusses will NEVER CONTAMINATE your computer or harddisk.
they are only unfriendly for illegal copies of the mainprogram.

Any workprogram, generated by the mainprogram, can be copied as much as you
like. As the program-disk is needed only for designing and generating one or
more workprograms, the programdisk will hardly show any wear. Therefore the
protection against copying the mainprogram is not a minus for honest buyers
of this program.

This manuel has been written to make you familiar with the many options of the
FLEXBASE program. The "helpwindow" is a reminder for the main commands and
many build in messages will appear at the moment you need that information.
So you normally will not need to consult the manuel, except for special options
The manual explains mainly the structure of the workprogram. On the last page
you will find a global overview of the workprogram structure.

All actions of the user and the program are controlled continuously. Faulty
actions, which could disturb the program, are not possible. On critical moments
only the keys, which have a function are active. Other keystrokes will be
ignored.

If a Y/N choice has to be made, the keys "Y" and "J" (with of without shift)
will be interpreted as "YES". Any other key will be interpreted as "NO".
This behaviour is implemented to give maximum operating comfort.

This is a translation of the original manual. If any grammatical faults were
made, please excuse them. We did our best to explain all the features of this
program in your language.

FLEXBASE changes a lot of the standard adjustments of your computer. If you
quit the program the adjustments will be reset as they were before starting
the program.


If FLEXBASE is runned on a TURBO-R computer, the computer will be switched to
highspeed ram-mode (if not already in that mode) The mode used at programstart
will be set again when quitting the program.

FLEXBASE checkes if there is sufficient memoryspace available as workarea. If
not, FLEXBASE won't start. A faultmessage will appear on screen, asking to
reset the computer and to restart FLEXBASE. If this fault occures it means
that an other program has been runned before, which did not manage the memory
in a proper way. A reset is necessary to restore the normal situation. Also if
the memory managing program "MEMMAN" has been loaded, the faultmessage will
appear because "MEMMAN" uses to much memory, needed by FLEXBASE.


FLEXBASE consists of 3 parts.

      Part 1 is the editor for typing text, which will be the fixed part of
      all systemcards in the database (workprogram).

      Part 2 is the part in which the kind of fields (alphanumeric or numeric)
      and the length of alphanumeric fields must be determined. A field is a
      reserved space in which the variable data can be filled in (workprogram)

      Part 3 generates the workprogram for the designed systemcard.


A workprogram, generated by FLEXBASE is suitable to run from harddisk under
DOS2. From disk it may run either under DOS1 or DOS2. The workprogram will use
120k of 128k video-ram for data storage. This is an important extension of the
normal memory in DRAM, especially for some japanese MSX2+ machines, which
contain only 64k memorymapper capacity.

FLEXBASE and workprogram both search for available memory. The workprogramm is
able to manage nearly 4 megabyte memory, consisting of 120k videoram and 3952k
Dram. Dram memory may be divided in maximum 10 memorymappers. If, via a slot-
expander, external memorymapper cartridges are connected to the system there
is a restriction. The memory managing system will fail if THERE ARE 10 OR MORE
MEMORYMAPPERS, WHICH HAVE A TOTAL CAPACITY LESS THEN 3952k. If there would be
more then 3952k memory available, only 3952k Dram will be used. It is not
likely that 9 or more external memorymapper cartridges will be connected to
the system, but on behalf of completelyness the restriction, as stated above
in capitals, had to be mentioned.

This manual contains instructions for using either DOS1 or DOS2. DOS1-users
should skip the instructions concerning DOS2 and DOS2-users should skip
instructions concerning DOS1.

A systemcard, designed with FLEXBASE can have many different forms. The
generated workprogram however will automatically adapt to the details of the
designed systemcard.

FLEXBASE has been tested carefully and found to be bugfree. If nevertheless a
user should find any fault, he has the guarantee that it will be corrected.
In that case please send a written clear description of the circumstances,
when the fault occured to the programmer:


		      Dick van Vlodrop
		      Oosteinde 68
		      6901 KD  Zevenaar
		      Netherlands






	    MANUAL  F L E X B A S E  DATABASE PROGRAM FOR MSX-2
	   

If there is more then 1 diskdrive present it does not matter which drive will
be used to start "FLEXBASE.COM". The program expects the disk to stay there.
If the program needs to acces the disk and does not find it in the drive from
which the program was started, a faultmessage will appear and the user must
replace the programdisk in the correct drive.

The program runs under DOS, so you have to start your computer under either
DOS 1 or DOS 2. After that you type:

		FLEXBASE  (and press the RET-key)

to start the program. The write protection slide must be closed because the
program must be able to write to the disk on certain moments. If you should
have forgotten this, a faultmessage will appear on the info-line (line 24)
at the moment the program needs to write to the disk.


COLOR-MONITOR OR MONOCHROM-MONITOR


The program normally starts using a 4 color palette for a colormonitor. If a
monochrom-monitor is used, there is a 'highligted' pallette for it. Press
functionkey F7 to toggle between '4 color' and 'highlighted' palette. The
highlighted palette cannot be changed. The 4 color palette for a colormonitor
can be changed by the user if the colors choosen by the programmer does not
satisfy the personal taste of the user. (See page 5, function F8)


SCREEN PERFORMANCE (26 lines)


The program starts with part 1, the editor. An empty card with 19 blank lines
will be displayed. Below the card there is a blank line, which is the info-
line. The info-line is used to display fault- and other messages. Below the
info-line there is a statusline and a ruler as shown below.

Insert ON    Monitor: Color	 F1:Help   Line:    Column:	TIME: 00.00:00
  ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+

Below the ruler remains a blank  line on which the horizontal position of the
cursor will be shown with the ^ sign. The numbers 1, 2, 3 etc. indicate the
10th, 20th, 30rd etc. position of the cursor. This position is also displayed
as a number behind the word 'column:' on the statusline. This number in fact
gives the same information as the arrow below the ruler. The choice for 2
information-methods was made because some users prefer a number and some prefer
a ruler with arrow. Now everyone will be satisfied.

On start the editor is in insert-mode (insert ON). The cursor has the 2nd
background color (or highlighted with monochrom monitor). The INSERT-key
toggles between insert 'ON' or 'OFF'. If 'OFF' the cursor has the 2nd fore-
ground color (or black with monochrom monitor).

The text 'MONITOR: COLOR' (or 'MONITOR: MONOCHROM') indicates which palette
is switched on. It also indicates that the editor, part 1, is active now.
This text will be replaced by either 'DEFINING FIELDS' or 'WORKPROGRAM' if
switched to part 2 or 3. This will be discussed later.

The projection of the time is just a service for the user. The text F1:Help is
a reminder that the commandlist-window can be called by pressing functionkey F1
Behind 'Line:' the linenumber will be displayed on which the cursor is.


				COMMAND KEYS
			      
If functionkey F1 is pressed the commandlist-window appears showing all
available commands and their commandkeys. It looks as below:

    Ŀ
      F2:  Insert hor. separation line  F7:  Toggle color/monochrom	    
      F3:  Insert blank line (cursor)   F8:  Adjust screen colors	    
      F4:  Terminate carddesign         F9:  Generation workprogram	    
      F5:  Back to card designing       F10: Quit program		    
      F6:  Remove line (cursor)         ESC: Remove this window	    
    

The keys F2, F3, F4, F6, F7, F8, F10 and ESC are aktive in the editor.

Pressing F6 removes the line pointed to by the cursor. This can be either a
horizontal separator-line or a blank line or a line where already has been
typed some text.

Pressing F2 inserts a horizontal separator-line below the line pointed to by
the cursor. F3 acts likewise for inserting a blank line. F2 and F3 both make
lower lines scroll down. If 19 lines are on the screen, the last line will
scroll from the screen and get lost permanently. In that case a warning will
be displayed on the info-line, which askes if the command should be executed
Y/N. this prevents unwanted loss of the last line. If the cursor points to the
19th line, insertion of a line is impossible. An F2/F3 command will be refused
and the reason for refusal will be displayed on the info-line.

Pressing F4 switches to part 2 to define the fields. Details follow later.

Pressing F5 switches back form part 2 to the editor, part 1. If there were
fields defined already, the fields will be deleted to free their space for
filling in more text with the editor.

Pressing F7 toggles between palettes for color- and monochrom-monitor.

The palette for a monochrom-monitor cannot be changed. It highlichts the back-
ground in stead of a 2nd set of colors. Users who are not satisfied with the
highlichting may switch to color-monitor and change the colorvalues in such a
way that it matches their demands. See next paragraph.

Before F8 is pressed you must check if 'INSERT' is "ON". This is necessary to
observe if the cursor holds sufficient contrast with other colors. After pres-
sing F8 a window will be opened, showing the colorvalue settings of each of the
4 colors. On the info-line the active commandkeys for changing the collorvalues
are displayed. Before using these commandkeys it is advised to copy the color-
values on paper, so you can restore the original settings if necessary. If you
use the commandkeys to change colorvalues the screencolors change accordingly.
After setting your favorit colorpalette press "ESC" to remove the window. The
program reminds if there were made any changes. If so and if quitting the
program with F10, the program will display a window, in which will be asked if
the new colorpalette must be stored Y/N. Pressing "Y" (or "J") results in
overwriting the old color setting in the program on disk. The old color
settings are lost now. At a next start of the program the new colors will be
used. The advised notation of the old settings on paper is now necessary if
you wish to restore the original colors.

Functionkey F9 is active only if switched to part 2. If so, pressing F9
switches from part 2 to part 3. In part 3 a workprogram can be generated.
Details follow later.

Pressing the ESC-key removes the helpwindow. If the helpwindow is displayed
and any command-key (other then 'ESC') is pressed, the helpwindow will also be
removed as if the ESC-key was pressed before the command-key. After the window
has been removed, the command will be executed.

			   THE EDITOR (part 1)
			  

The editor is intended to type the fixed textlines for every card. A simple
example below shows how an address database could be designed.

     Name:
     Address:
     Town:
     Postmark:
     
     Remarks:

For this example 6 lines has been used. The 5th line is a horizontal separa-
tion line. Such a line can be used for instance as separation between a header
and the text for the card itself. Behind the typed text a field can be defined
in part 2. It is not possible to place a field in front if a text. A blank
line can also be used to place a field (The whole line or a part of it). If
one expects the space following a text to be to smal for a field of sufficient
length, one can insert 1 or more blank lines, to be used as fields.

It is not obligatory to place a field on every used line, but on each textline
or blank line only 1 field can be defined. This restriction had to be made to
ensure a fast execution of the available search functions of the workprogram.

The freedom to decide where text, blanklines or fields will be placed, offers
a wide range of possible card designs. Whatever the purpose of your systemcard
there is always a way to design a card that meets your demands. The workprogram
will function with the designed card.


EDITOR FUNCTIONS

The editor is line-orientated. It means that deleting characters with the
BS-key will stop at the start of a line. The cursor will not jump to the end
of the previous line.

If insert = "OFF" the cursor goes to the next line if pressing the RET-key.

If insert = "ON" and the RET-key is pressed, a blank line will be inserted
below the cursor and the cursor goes to the start of the inserted line. Any
characters under or on the right of the cursor are moved to the start of the
inserted line (word wrap). If the cursor was at the start of a line, the whole
line will be moved to the inserted line. In fact the result is that a blank
line is inserted above the cursorline. This is exactly what you need if you
wish to move down the upper line, to type text on the (inserted) 1st line.

If you don't want word wrap or you don't want inserting a blank line, then
don't use the RET-key but use the cursor/down-key to move the cursor to the
next line. (or switch to insert "OFF" by pressing the INS-key.)

To insert a blank line, for instance as line 3, place the cursor on line 2 and
press functionkey F3.

Inserting a line causes the lines below to scroll down. If at that moment
there are 19 lines used and the 19th line holds text, this text would get lost.
In that case the command causing the scroll is not executed, but a warning will
be displayed on the info-line asking if the command Y/N should be excuted.
It avoides that you could loose the last textline unwantedly.

Text which has been moved to the next line by pressing the RET-key in insert-
mode can be moved back. If you place the cursor behind the textline above it
(or at the start of the line if it is a blank one) and press the DEL-key, the
text of the line below the cursor will be moved back to cursorposition.
This is also an alternative way to remove a blank line, without changing the
length of the card.

If the cursor leaves a textline, any spaces to the right of the last character
are deleted to keep maximum space for defining a field on that line.
The cursor/up/down/left/right-keys are programmed to follow the text. If for
instance cursor/left is pressed, when the cursor is at the start of a line,
the cursor will not go to the end of the previous line but moves to behind the
last character on the previous line. cursor/right moves the cursor from behind
the last character of a line to the start of the next line. The keys cursor/up
and cursor/down try also to follow the text. They move the cursor as if the
unused space behind the text on a line does not exist.


TIPS FOR DESIGNING A SYSTEMCARD


Please read the manual for the workprogram before designing a card. There you
may find details to concider, when designing your card.

Consider making your carddesign on paper first and then type the designed
card, using the editor. It mostly works faster then typing text and changing
it over and over again.

Typing spaces at the start of a line is not advisable. This reduces the amount
of space, available for defining a field on the right of the typed tekst.

Remove unused blank lines, where no field will be defined. This is not obliga-
tory but it results in a little less use of memory for each card, when storing
its data in the workprogram. It also saves paper if cards are to be printed
with the workprogram.

If you use FLEXBASE for making an address-file it is advised to separate
a postmark and a townname on different lines. This might give more flexability
when using the searchfunctions of the workprogram. The printerfunctions have
a build in facility to print the contents of 2 fields after each other on 1
printed line. This can be done twice. So there is no need to place postmark
and townname on 1 line in 1 field.

If you wish to give each card its own identificationnumber (or code), you
should either reserve a line + field for it or you should make your design in
such a way that the identification can be typed at the start of a field. The
searchfunction in a preferent field, makes it easy to find a specific card
very fast, if you follow the advise above. The field must not be difined as
a numeric field but as an alphanumeric field. (See also page 15)

Before switching to part 2 (key F4), check carefully all the text you have
typed. If you find any fault later you must switch back (key F5) to the editor
to make a correction and this deletes all fields you might have defined
already. After making a correction, you will have to define the fields again.


INFORMATION ABOUT FIELDS


YOU SHOULD REMENBER THE FOLLOWING: The amount of memory used by the WORKPROGRAM
does not depend on the length of the fields, but depends on the number of
characters typed in a field !!	Any spaces behind the last character in a field
will not be stored, but spaces before text in a field are stored !! This means
that if you wish to aligne/left the text of some fields, you should aligne
the fields as you define them. If you should use leading spaces to aligne text
in non aligned fields, the use of memory will increase unnessesary, thus
reducing the number of cards that can be stored in the available memory.
If you define the length of a field, you make in fact a restriction for
yourself how many characters can be typed in a field, setting a limit to the
memory use for that field.


On each line only 1 field can be defined. There are maximum 19 lines, so the
maximum number of fields is also 19. The startposition of a field can be
choosen anywhere, but always to the right of existing text. The end of a line
is the limit for the end of a field. If a greater length is desired for a
field then the space on a line allows, you should insert a blank line and
define a field there as extension of the field on the previous line.

Maximum 5 fields can be defined as "NUMERIC FIELD". In a numeric field only
numeric values are allowed to be filled in. (Syntax rules: see page 2)
Defining numeric fields make sense only if you intend to use the numeric
searchfunction or the arithmetic functions of the workprogram.


		       DEFINING FIELDS (= part 2)
		      

Switch from part 1 to part 2 by pressing key-F4. On the statusline the words
"DEFINING FIELDS" appear, indicating that part 2 is activated. Now a brief
summary of the instructions below can be called up by pressing helpkey F1.
Use the cursor-keys to move the cursor to the position, where you want to
start an alphanumeric field. Press the SELECT-key to fix the startposition.
The ">" sign appears on screen marking the startposition. To change the start-
position move the cursor left or right and press 'SELECT' again. the ">" sign
then moves to the new startposition.

To define the end of a field move the cursor to the right to the desired posi-
tion. Then use the keycombination SHIFT + SELECT to fix the endposition. The
"<" sign appears on screen marking the endposition. To change that endposition
move the cursor left or right and press SHIFT + SELECT again. The "<" sign then
moves to the new endposition. If the end of the line should be the endposition
there is an alternative way to define the endposition. If the cursor leaves the
line (using corsor/up/down-key) the mark "<" will be placed automatically at
the end of the line.

To define a "NUMERIC FIELD" in stead of an alphanumeric field move the cursor
to the desired startpositon. Pressing the keycombination CTRL + SELECT results
in placing a numeric field with a fixed length of 21 positions. The start- and
end-positions are marked with a "#" sign. The fixed length of a numeric field
is just long enough to accept the longest possible notation of a numeric value
(a negative value, double precision). The startposition must be choosen at
least 21 positions left to the end of the line, otherwise a faultmessage will
be displayed on the info-line.

Any defined field can be deleted by putting the cursor on the line of the
field and pressing the DEL-key.

The marks ">", "<" and "#" are used only to indicate where the fields are
placed. In the workprogram these marks are absent. The field will be indicated
by highlichting the field as the cursor is on a line where a field has been
defined.


		   GENERATING WORKPROGRAM (= part 3)
		  

After defining all fields pressing key-F9 switches from part 2 to part 3. Now
an information-window is opened, showing usefull information about your card-
design versus the memorycapacity of your computer. The window tells you how
many free memory has been found and how many bytes would be needed to store the
data of 1 card, IF ALL FIELDS WOULD BE USED COMPLETELY FOR FILLING IN DATA. The
minimum number of cards that can be stored in the available memory is also
calculated and shown. The real storage capacity will be considerably larger
because in practice the space in the fields will normally be used partly only.
The shown data is mend to give you an impression what you may expect, when your
carddesign is used to generate a workprogram for it.

The information-window is a good help to learn what's the impact on memory-use
and storage capacity if you would simplify or extend your carddesign or the
length of the fields. If you go back to the editor by pressing "ESC" and then
key-F5 and change the number of lines used and/or change the length of fields,
you can see immediately which difference it makes, if you go to part 3 again.
The updated data of the information-window shows the consequences of the
alterations made in your design. This is a usefull help to optimise the
desired storage capacity in conjunction with the number of lines and the size
of the fields used for your carddesign. It tells you if you should spare on
field length (or number of lines) or not to achieve a sufficient storage
capacity in the available free memory of your computer.

If you are completely satisfied with your carddesign hit the RET-key. The
information-window will be replaced by the window for generating the
WORKPROGRAM. The window will adapt itself to the disk operation system in use
(DOS 1 or DOS 2) and if a harddisk is present or not.
The new window looks as below.


If DOS 1 used:	 (DOS 2 users may skip this chapter)


     Ŀ
     		    GENERATE   F L E X B A S E	 WORKPROGRAM		  
     Ĵ
     									  
     	Present logical diskdrive(s):	A,B				  
     	Default drive is   'A', do you want to use that drive ?           
     	If so, press RET-key.		  If not, type driveletter.	  
     	A:	  .COM							  
     	Type filename for workprogram and press RET-key 		  
     	(ESC: quit input)						  
     

The lower 3 of the 6 lines in the window are not yet displayed, so imagine
please that they are blank lines.

If there is only 1 diskdrive you see that there are 2 logical drives, but
there is 1 physical drive, which can handle either DISK A or DISK B. In that
case there is no choice to be made and you should hit the RET-key to go on.

If there is more then 1 diskdrive, the driveletters of the present drives are
specified at the first line. On the second line you see the letter for the
default drive. That's the drive where FLEXBASE was started from and where the
programdisk must be present. Now you may choose if you wish to write the
workprogram to the programdisk by pressing the RET-key, or you may choose
another drive by typing the driveletter of that drive. If you should type a
driveletter other then the specified driveletters (1st line) it will be
ignored. If the typed letter is correct, this letter is filled in at line 2.

If you have choosen another drive you must put a formatted EMPTY DISK into
the choosen drive. If you don't have such a disk now, then choose to write the
workprogram to the programdisk. You can copy the workprogram to an empty disk
later. This is also a way to save a backup-copy on the programdisk.

As soon as you hit the RET-key the last 3 lines appear in the window. The
cursor will be placed behind "A:". If another drive was choosen the same
happens, but "A:" will be replaced by the choosen driveletter. The last 2
lines need no further explanation.

There can be typed maximum 8 characters as filename. (BS-key for corrections)
If a typed character is illegal for a filename it will not be accepted but it
will be ignored. This check avoides that DOS1 can find an illegal character in
the filename and causes trouble like faultmessage, correction etc. etc.
The filenames "DISK-A", "DISK-B" etc. are reserved and not allowed.

After typing the filename comfirm it by pressing the RET-key. FLEXBASE now
starts generating the workprogram and writes it to the choosen disk. After
that, FLEXBASE switches back to part 2. Now you have 2 options:  Press key-F10
to quit the program   or   Press key-F5 to go to the editor for designing a
systemcard for another workprogram.


IF DOS 2 used:	 (DOS 1 users may skip this chapter, go to page 13)


     Ŀ
     		    GENERATE   F L E X B A S E	 WORKPROGRAM		  
     Ĵ
     									  
     	Present logical diskdrive(s):	A,B,C,D,E			  
     	Default drive is   'D', do you want to use that drive ?           
     	If so, press RET-key.		  If not, type driveletter.	  
     									  
     									  
     
				(example 1)

The opened window might look as above. On the first line all logical drives
are specified. With this example there might be a harddisk (partitions A,B,C)
and 2 diskdrives D & E. It is also possible that only 1 diskdrive is present
to handle DISK D  or  DISK E. In that case, of course, driveletter "E" must
never be choosen.

On the second line you see the letter for the default drive. That's the drive
where FLEXBASE was started from and where the programdisk must be present. Now
you may choose of you wish to write the workprogram to the programdisk by
pressing the RET-key, or you may choose another drive by typing the driveletter
of that drive. If you should type a driveletter other then the specified
driveletters (1st line) it will be ignored. If the typed letter is correct,
this letter is filled in at line 2.

If you have choosen another drive and it is a diskdrive (not a harddisk),
you must put a formatted EMPTY DISK into the choosen drive. If you don't have
such a disk now, then choose to write the workprogram to the programdisk. You
can copy the workprogram to an empty disk (or to a harddisk) later. This is
also a way to keep a backup-copy on the programdisk.

As soon as you hit the RET-key some more lines appear in the window. If the
choosen drive is a harddisk partition these lines are as example 2 below. If
it is a diskdrive the lines are different as discussed later.

Assuming a harddisk was choosen then the driveletter "D:" is replaced by the
letter of the harddisk partition (assume B) and the cursor is placed there.


HARDDISK  DOS 2


Now you have to answer the question on line 5 of example 2.

(4)  	B:								  
(5)  	Subdirectory	Y/N  ?						  
     									  
     
			   (example 2, harddisk)






If your answer is "Y" (or "J") the lines 4 and 5 are deleted and 3 other lines
appear as example 3 below with the cursor behind "B:\"

     	B:\								  
     	Type name subdirectory and press RET-key			  
     	(ESC: quit input)						  
     
			    (example 3, harddisk)


If another key was pressed ,neither "Y" nor "J", it counts as "NO" and the
3 lines appear as example 4 below with the cursor behind "B:".

     	B:	  .COM							  
     	Type filename for workprogram and press RET-key 		  
     	(ESC: quit input)						  
     
			    (example 4, harddisk)


If EXAMPLE 4 is valid you must type maximum 8 characters for a filename.
(BS-key for corrections) If a typed character is illegal for a filename it
will not be accepted but ignored. This check avoides that DOS 2 could find an
illegal character in the filename and causes trouble like faultmessage,
corrections etc. etc.  The filenames "DISK-A", "DISK-B", "DISK-C" etc. are
reserved and not allowed. The filename must be comfirmed by pressing the
RET-key. After that FLEXBASE starts generating the workprogram and writes it
to the rootdirectory of partition B on the harddisk.

if EXAMPLE 3 is valid you must type the name of an existing subdirectory of
the choosen harddisk partition. This subdirectory name may be up to 8
characters long evt. followed by a point and an extension of max. 3 characters.
Any typed character is checked if legal as mentioned above with example 4.
As the subdirectory name is comfirmed with the RET-key the lower part of the
window changes and might look like example 5 below.


(4)  	A:\UTILITY.MSX							  
     	Another subdirectory	Y/N  ?					  
     	(ESC: quit input)						  
     
			    (example 5, harddisk)


If you answer the question with neither key "Y" nor "J" it counts as "NO" and
line 4 will be extended with a backslash, 8 spaces and ".COM". Now the
filename must be typed as described with example 4 (see above).

If you aswer the question with "Y" (or "J") a backslash sign "\" is placed
on line 4 and another subdirectory-name must be typed as discribed above.
The number of subdirectories are restricted. The total length of the path,
the filename included, cannot be longer then 63 characters. If the program
'sees' that this limit threatens to be exceeded then 8 spaces and ".COM"
are placed behind the backslash sign and the filename must be typed. Example
6 shows how the window might looklike if the total path has been typed.

(4)  	A:\UTILITY.MSX\FLEXDIR\WERKPR-1.COM				  
     	Type filename for workprogram and press RET-key 		  
     	(ESC: quit input)						  
     
			    (example 6, harddisk)

The filenames "DISK-A", "DISK-B", "DISK-C" etc. are reserved and not allowed.
After comfirming the filename by pressing the RET-key, FLEXBASE starts
generating the workprogram and writes it to the subdirectory described by the
path on line 4.

The fully controlled input for subdirectories guarantees a 100% correct path-
name. It avoides that DOS 2 could find any fault in it and causes trouble with
faultmessage, corrections etc. etc.

If you wish to write the workprogram to a subdirectory on harddisk, that
subdirectory must already exist. If it does not you may expect a faultmessage.
In that case it is advised to choose the drive with the programdisk. After the
workprogram has been generated you can create a subdirectory on harddisk and
copy the workprogram to it. The workprogram on the programdisk may stay there
as a backup-copy if you wish.

As soon as the workprogram has been written to disk or harddisk, FLEXBASE
switches back to part 2. Now you have 2 options:  Press key-F10 to quit the
program   or   Press key-F5 to go to the editor for designing a systemcard
for another workprogram.



DISKDRIVE  DOS 2


If there was a diskdrive choosen to write the workprogram to diskette, the
window will be as example 4. Using a subdirectory on a disk with the
workprogram on it makes no sense. Therefore this is not supported by the
workprogram and FLEXBASE does not offer the possibility to specify a sub-
directory if a floppy-diskdrive has been choosen. The description for DOS 1
(see page 9) fits also for DOS 2.





Did you know that MAD, DOETINCHEM sells a program for TURBO-R computers, that
implements either the IBM-characterset 2 or the complete MSX-characterset
(without any fault) in the computer. Each of those 2 charactersets can be
selected by the user at any moment. (from DOS level)

On model TURBO-R A1-GT it is possible to load the program on Sram-disk. It
means that the program stays present as the computer is switched off and starts
again if the computer is switched on. This feature uses the possibility on
model A1-GT to replace the built-in japanese software by other programs.

A printerdriver for IBM- or IBM-compatible printers is built in, which is
activated automatically if the user selects the IBM-characterset 2.

Keyboard layout of the MSX-characterset is nearly the same as the UK-keyboard
layout for MSX-2 computers. The program is prepaired to be placed on harddisk
and autostart from hard disk. From floppy disk it loads in a couple of seconds.
The program is loaded into Sram, so the normal Dram-memory is always completely
available for other programs.

	    Price Hfl. 15,-- exclusiv mailing costs.

Ordering address: MSX Avengers,
		  Kwartellaan 52
		  7071 JL  ULFT  (Netherlands)


ͻ
									     
     This manual has been written on TURBO-R using the IBM-characterset     
     and printed with an IBM-compatible bubble yet printer.		     
									     
ͼ

		INTRODUCTION   F L E X B A S E	 WORKPROGRAM
	       

A workprogram is capable to manage almost 4 Mb memory consisting of 120k
videoram and 3952k Dram. If this amount of memory is available, very large
datafiles can be stored in it. So there must also be a possibility to save
such a large file. For users, who have a harddisk available this will be no
problem, but if data must be stored on a floppy disk the problem is that on a
double side disk there is max. 713k free and on a single side disk 354k.

The workprogram uses a multy-disk system to save very large files if no hard-
disk used. The multy-disk system is designed to make sure that a large file
will be saved or loaded on more disks in the right order. The 1st disk is
always the disk with the workprogram on it. Before saving a datafile the first
time, the system creates an empty file with the filename 'DISK-A.FLX' and then
saves the datafile. The datafile gets the same name as the workprogram with the
extension 'FLX' in stead of 'COM'. The empty file tells the system, there is a
datafile too. The letter "A" in the name of the dummyfile indicates that the
disk contains the beginning of the datafile.

As the disk gets full, the system will ask the user to insert "DISK-B". This
must be a formatted EMPTY DISK. The program checks if it is an empty disk.
If so it creates an empty file on it with the filename "DISK-B.FLX" and then
saves the remaining part of the data. This repeats every time a disk gets
full. The only difference is the name of the empty file "DISK-?.FLX" where
instead of the questionmark the next letter of the alphabet is filled in.
The letters A, B, C etc. tell the system if the disks are inserted in the
right sequence during saving or loading large datafiles. A 4 Mb datafile will
need either 6 doubleside- or 12 singleside-disks to save the file.

The empty file on the disk with the workprogram also serves as recognition for
the disk with the workprogram. If you have a safety backup on a disk (e.g. with
the main program on it) and accidently used that disk to start the workprogram
there is no empty file and that means there is no datafile too. It causes a
message on the info-line that there is no datafile that can be loaded, which
warns you that the backup-disk has been used to start the workprogram.

At programstart the filename of the workprogram is preserved. This allows the
program to check if the correct disk is still in the diskdrive at the moment
something has to be written to disk. If this check fails, nothing will be
written to disk, but a faultmessage will be displayed on the info-line. It
guarantees that only the correct disk can be used for writing to it.

The empty dummy file has an indispensible function within the controlsystem.
If the dummy file would be deleted, the program can neither load nor save the
data in the right sequence anymore and the data will be deformed to an
unusable datastream which cannot be interpreted as carddata anymore. It is
quite clear that even the best controlsystem cannot function properly if there
has been fooled around with the controlmarks !! If more then 1 disk is needed
to save the data, the datafile is already a large one and it would be a
disaster to loose it. The empty dummy file prevents this to happen. It is the
most important part of the controlsystem.

ͻ
 The explanation above of the multy-disks-system is given as a warning that  
 the filenames on the disks with workprogram and datafile and succeeding     
 disks MAY NEVER BE DELETED OR ALTERED IN ANY WAY !!!	Otherwise the data of 
 your database will be unusable. Also writing other files on the disk(s)     
 should be avoided. It would slow down saving and loading the datafile.      
Ķ
  If your MSX-computer has more than 512k memory (inclusiv any memorymapper  
  cartridge), then take care to have a formatted empty disk ready for use.   
  It avoides that you could be surprised ever by the message "DISK FULL".    
ͼ


		  MANUAL   F L E X B A S E   WORKPROGRAM
		

A workprogram runs under DOS 1 or DOS 2. Though you must start your computer
under DOS. If there is no harddisk you may copy the DOS-files COMMAND.COM and
MSXDOS.SYS (or COMMAND2.COM and MSXDOS2.SYS) to the workdisk, but NEVER to a
succeeding disk !!  It is preferable to do that before you use the workprogram
the first time because the datafile then will be the last file if data is saved
to disk the first time. As a result the time for saving or loading data will
be as short as possible. Now you can start DOS with the workprogram-disk in
drive "A" bij pushing the resetbutton of your computer. Next type the filename
of your workprogram and hit <return> to start the workprogram. The program
starts always using the palette for a colormonitor. If a monochrom monitor is
used you must press the TAB-key to toggle to the 'highlite' pallette.

If your computer has been started and used under DOS earlier it might happen
that the workprogram does not start but the following message appears on your
screen: "Unsufficient TPA-memory in page 3. Reset computer and start program
again." This means that either the memory-management-program "MEMMAN" is
installed (using much more memory then the memory-management of the workpro-
gram) or another program was runned before, which did not handle memory in a
proper way. The message tells what to do, to solve the problem.

If the workprogram has been used earlier and also a datafile has been saved,
that file will be loaded automatically and the contents if the 1st card in
memory is displayed. If a datafile not yet exists the following message appears
on the info-line:   No data-file found on this disk."   Quit program ?  Y/N

Why this apparently senseless message ?  If you know that a datafile has been
saved earlier, this message tells you that you have used accidently a disk
with a backup-copy to start the workprogram and not the workdisk. Just press
"Y" (or "J") to quit the program, insert the right disk and start the
workprogram again. If you use the workprogram the 1st time there is of course
no datafile yet. In that case just hit another key to continue.

Remember that (like with the FLEXBASE main program) the keys Y, y, J or j
can be pressed as answer "YES" on a Y/N question. Any other key will be
interpreted as "NO". The letter "J" is valid because this is the letter for
versions in some other languages then english.

After the 1st start of the workprogram (no datafile present) an empty card is
displayed on screen. The 3 toplines and 2 bottomlines have the 2nd color
palette. For a monochrom monitor press the TAB-key to switch to the palette
"highlighted". From now on the word "highlighted" will be used for either one
of the 2 color palettes and the word "program" stands for "workprogram".
The cursor is placed at the start of the most upper field, which is highligted.
The 1st bottomline is the status-line. It shows form left to right: The index-
number of the card, the kind of field the cursor points to (numeric or alpha-
numeric), "HELP F1", the line- and column-number of the cursor and the time-
counter. The line above the statusline is the info-line on which messages and
instructions will be displayed if necessary or usefull.

Pressing functionkey F1 calls up the helpwindow for commandkeys as shown below.
The helpwindow can be called at any time provided no other window is present.
Keys F7, F8, F9 give access to menus or other windows with many options, which
will be discussed later.

     Ŀ
     	F2: Store card data	     	F7:  Search functions	      
     	F3: Display next card	     	F8:  Arithmetic functions     
     	F4: Display previous card    	F9:  Printer functions	      
     	F5: New card to fill in      	F10: Quit program & save data 
     	F6: Delete card from memory  	TAB: Color/monochrom monitor  
     	SELECT: Choice cardnumber    	ESC: Remove this window       
     

RUNNING SPEED


The program can handle very large datafiles (up to 4 Mb.). To achieve a satis-
fying performance for the user the running speed is utmost important. To make
the program very fast some choices had to be made to achieve the highest
possible speed. Un ultimate test with a datafile, containing 3000 cards
(1400k data) confirmed that the best choices were made. Result on a Turbo-R
computer with harddisk: Loading program, starting program and loading datafile
in 10 seconds. On a MSX-2 computer (with harddisk) with normal clockfrequency
of 3.57 Mhz. the time would be approximately 30-40 seconds. Without a harddisk
the slowness of the diskdrive causes a much longer time to do the job. The
program speed itself cannot change that. The internal structure of the program
uses an indexnumber as cardnumber. It means that the cardnumber is a pointer
used internally to find a card in memory. There is no fixed relation between a
specific card and the indexnumber.


VARIABLE CARDNUMBERS

The consequences of using the cardnumber as indexnumber can be explained by
the next examples:

Assumed there are 10 cards in memory and the 4th card is deleted. The carddata
itself will not be deleted, but the index for the 4th card will be destroyed
be copying the index for cards 5 up to 10 to the place for cards 4 up to 9.
The contents of cards 5-10 are not altered, but the index(card-)number is. The
attached cardnumbers are now 4-9 in stead of 5-10. The index holds now data
for 9 cards in stead of 10. The indexnumber has no fixed relation to a specific
card. It's just a pointer, where data is stored to find a card in memory.


PREFERENT FIELD

One of the fields is always the preferent field. At 1st start of a workprogram
the most upper field will be choosen as preferent field. The preferent field
is used for sorting the index alfhabetically on the contents of the preferent
field. If the upper field is not the field you wish to be used for alphabetic
sorting, you can choose another field as preferent field. See page 20 how you
can change the preferent field.

SORTING ALPHABETICALLY

Sorting will be done using the FIRST 16 CHARACTERS of the preferent field or
less if there are less then 16 characters, but sorting never uses more then 16
characters of the preferent field. This restriction keeps the sorting time
within an acceptable length. For practical reasons upper- and lowercase charac-
ters are treated as equal. Because sorting is done on the ascii-number of
characters, numbers come before letters. You should realise, that the number
"2" is found 'larger' then "19" (when sorting the 1st character). After
sorting the numbers 1-25 the sequense would be:

     1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,3,4,5,6,7,8,9

There is only one way to sort numbers correctly. A series of cyfers forming a
number must have always the same length by adding leading zero's in front of
the existing cyfers to make the length of each number equal. For searching in
a preferent field with a number the sorted order if the index is not important.
However for printing ALL CARDS or FIELDS OF ALL CARDS the sorted order of the
index will be used. If you intend to use a field with numbers as a preferent
field for printing in the sequence of the numbers, remember that the numbers
must be of the same length (leading zero's) in each card, to get the index
sorted correctly, which is necessary for printing in the correct sequence.




HOW TO USE FIXED CARDNUMBERS OR FIXED CARDCODES.


If you wish to give each card its own number or other code you can do this by
reserving a field for it when designing the card. You can also make another
field long enough to fill in a cardnumber or code at the start of that field.
The search options "see" that number or code just as a characterstring, so that
field does not need to be a numeric field, an alphanumeric field can be used.
If you choose this field as preferent field, the cards will be sorted in the
sequence of your numbers or code. Remember however that numbers must have the
same length (see above) and also that upper- and lowercase letters are equal
for sorting alphabetically.


			  FILL IN OR CHANGE CARDS
			 

After programstart the card with indexnumber 1 is displayed on screen. If there
was not yet a datafile present on the workdisk this will be an empty card. The
cursor is in the upper field, which is highlighted.

A datafile is loaded automatically, if present, and the cursor is in the upper
field behind the last character in the field. If a new card has to be filled
in press F5. Card number 1 will be replaced by an empty card.

The program starts with the editor in 'insert on' mode. The cursor has a
line-shape. In 'insert off' mode the cursor has a bloc-shape (overwrite mode).
You can toggle between insert ON and OFF bij pressing the INSERT-key.

The editor is field orientated, which means that text can be typed or changed
only within the highlighted field on the cursorline. The keys cursor/up and
cursor/down are programmed to let the cursor jump to resp. a higher or a lower
positioned field. The highlighting of a field moves always to the field
where the cursor has been moved to. Within a field the active editor-keys are:
DEL, BS, CURSOR/LEFT and CURSOR/RIGHT.

Move the cursor to the field you wish to change or fill in and type your text
in the field. Spaces typed behind the last character in a field are deleted if
the cursor goes to another field or if you press functionkey F2 to store the
card in memory. This reduces the amount of memory used to store the carddata.
You may fill in the fields in the order you like or leave fields blank. You
must fill in something somewhere, otherwise you cannot store the carddata. The
program refuses to use valuable memoryspace for storing empty cards.

If the cursor enters a numeric field, the word "ALPHANUMERIC" on the statusline
is replaced bij the word "NUMERIC". In that case you must type a numeric value.
The syntax must comform to the rules which are valid for MSX-basic. Otherwise
a faultmessage will be displayed on the info-line at the moment the cursor
tries to leave the field. Accepted are: either a number with or without a
decimal point or a scientific notation of single/doubble precision or the
notations &H.... or &B........ If a syntax fault has been found the fault must
be corrected or the numeric expression must be deleted completely, otherwise
the cursor cannot be moved to another field. This makes it impossible to go on
if a numeric field contains a syntax fault.

After filling in or changing the carddata it must be stored in memory by
pressing functionkey F2. A new or changed card is stored somewhere in memory
but the index will be sorted again (and re-numbered) on the alphabetical order
of the valid preferent field. The program "knows" if a card has been changed
or filled in. If you did not use F2 to store the carddata and press another
command-key, the command is refused temporairily, a beep sounds and on the
info-line appears the message:

    "Card on screen has been changed. Should changes be stored ?   Y/N"

If it concerns a changed card, the changes are canceled if your answer is "NO".
If it concerns a new card the whole card is cancelled if your answer is "NO".
Answering "Y" stores the carddata in memory. Whatever your response (Y or N)
the temporairily refused command will be executed next. This check makes it
inpossible to loose accidently the data of a changed or filled in card.


			     COMMANDKEY FUNCTIONS
			   

Functionkey F1

Calls a helpwindow (see page 14) showing the conmmandkeys and a brief
description of their functions. If no carddata in memory yet, only the keys
F9, F10, TAB and ESC are active. Any other commandkey, if pressed, results in
the following message on the info-line:

	"No card-data stored in memory yet   ** Hit a key **"


Functionkey F2

Stores the carddata of a changed- or filled in card in memory. If it concerns
a changed card, its old contents get lost. If F2 is pressed with an empty card
on screen a faultmessage appears on the info-line. The program refuses to use
valuable memory space for storing empty cards.


Functionkey F3

Displays the next card stored in memory. If there is no next card anymore an
empty card will be placed on the screen. If F3 is pressed with an empty card
on screen, the following message will appear on the info-line:

   "There is no next card (fill-in card on screen)  Display last card ?   Y/N"

This message is usefull if you tried to get the last card on screen by holding
F3 down continuously. Then you will get the message at the end of the file.
The message itself needs no explanation.


Functionkey F4

Displays the previous card stored in memory. If there is no previous card the
message:   "First card displayed    Hit a key"   appears on the info-line.
Hitting a key clears the info-line.


Functionkey F5

Displays an empty card on screen to be filled in. Pressing F5 is also a way to
go to the end of the file. If you press F5 and next F4, the last card of the
file in memory is displayed on screen without any delay.


SELECT-key

Pressing this key displays the following text on the info-line:
 "Type cardnumber to be displayed:      + RET-key    (ESC: cancel command)"
The cursor is behind the word 'displayed'. Assume you type "1" and hit the
RET-key, then the 1st card of the file will be displayed without any delay.
By typing the desired cardnumber you can jump to any card in the file. If you
type a non extisting cardnumber a faultmessage appears on the info-line.



You may also hold down F3 or F4 to go to resp. a higher or a lower cardnumber.
The cards will run over your screen with the repetition speed of the key.
With a large datafile the SELECT-key will be the fastest way to go to another
cardnumber.

TAB-key

Toggles between palette for colormonitor and highlighted palette for a
monochrom monitor. Adjusting the colors is not possible with a workprogram.
That can be done only with the FLEXBASE mainprogram. (See page 5)


		      SEARCHFUNCTIONS (Functionkey F7)
		     

			      Ŀ
Functionkey F7 opens the       	  MENU 1: SEARCH FUNCTIONS	     
search function menu as shown Ĵ
to the right. The letter "N"    [ 1 ]  Search in (start) preferent field    
of "Y/N" is highlighted, indi-  [ 2 ]  Search in (start) other field        
cating that the search options  [ 3 ]	Search in all fields		     
are swithched to operate        [ 4 ]	Preset preferent field		     
"not case sensitive". You can   [ 5 ]  Seach for more then 1 string (Menu 2)
toggle between "Y" and "N"      [ 6 ]  Uppercase/lowercase sensivity    Y/N 
pressing numberkey "6". The     [ 7 ]  Search for a numeric value (Menu 3)  
option choosen will be high-   	   (Choose option number)	     
lighted. The options 1, 2, 3,   [ESC]	Remove this menu		     
5 and 7 can be combined with  
with printer-functions and with arithmetic-functions. Details will be explained
in the chapters for these functions. During the execution of a searchfunction
the handled indexnumber is displayed on the statusline. It shows that a search-
function is running and also how fast it is going on.

Everything on screen can by printed out (screendump). Cards found with a
search-function can even be printed automatically. Either the whole card or
only the contents of all fields or a programmable number of fields in a pro-
grammable sequence (printing labels). Details are discussed in the chapter
printerfunctions.


PREFERENT FIELD

At programstart the preferent field is always the one that was choosen at the
moment you quitted the program earlier. (If you start the program the first
time, the upper field is choosen as preferent field.) When loading the datafile
the first 3 characters of the preferent field of each card are placed in the
index for that card. The same happens if a card is stored in memory by using
key F2. If a search in the beginning of the preferent field has to be executed,
the searchroutine "looks" for a match between the first 3 characters of the
searchstring and the 3 characters in the indexes. Only if a match is found the
searchroutine has to appraoch the datafile to check for a match of the remai-
ning characters of the search-string. Because the searchroutine has to approach
the large datafile seldomly, the search in the beginning of a preferent field
works amazingly fast. Each field can be choosen as preferent field (See expla-
nation of option 4 below). All other search-options are working fast, but
option 1 is faster then option 2 and much faster then option 3.


FUNCTION F7 - OPTION 1	(Search in a preferent field)


If you have choosen option 1 the menu-window will be removed. On the status-
line appears (behind the indexnr.): "Field at linenr."  followed by the
linenumber of the preferent field. On the info-line appears:

     "Type searchstring (start field):                     + <Return>"
The cursor is placed behind the colon and the searchstring you should type
now, will appear there. You can type a string with a maximum length of 20
characters. For corrections the BS-key can be used. If 20 characters have been
typed, other keystrokes then BS- or RET-key will be ignored.

At the moment you press the RET-key the info-line is cleared and the text:
"Searchstring:" followed by the string you have typed is displayed at the left
side of the info-line. The search-action starts.

If the searchstring could not be found, the text on the info-line is replaced
by: "NOT FOUND    ** Hit a key **"   The info-line is cleared if you hit a key.

If the searchstring is found the matching card is displayed on screen with the
cursor placed behind the last character of the string that has been found.
On the right side of the info-line appears the text: "Continue search ?  Y/N"
If you answer "Y" (or "J") searching continues in the remaining part of the
datafile, otherwise (another key pressed) the found card will stay on screen.


FUNCTION 7 - OPTION 2	(Search in the beginning of another field)

If you have choosen option 2, this option in the menu will be highlighted and
behind it there will appear a highlighted square with the cursor in it.
On the info-line the following text appears:

      "Type linenumber of (search-)field behind option"

This text is self explaining. Type the linenumber of the field you wish to
search in (BS-key for corrections) and hit the RET-key. Now the program checks
if there is a field defined on the given linenumber. If not a faultmessage
appears on the info-line and you must correct the linenummer. You cannot
continue as long as a wrong linenumber exists behind the option.

If the linenummber is correct the menu-window is removed. and everything
goes on like described for option 1 above.

It is allowed to type the linenumber of the preferent field. Searching will be
executed fast, but slower then with option 1. Because the search routine only
has to examen the specified field, option 2 is much faster then option 3.


FUNCTION F7 - OPTION 3	(Search in all fields)

If you have choosen option 3 the menu-window will be removed. On the statusline
appears (behind indexnr.):  "ALL FIELDS"  and on the info-line appears the
text:
	  "Type searchstring:                     + <return>"

The cursor is placed behind the colon and the searchstring you should type
now, will appear there. You can type a string with a maximum length of 20
characters. (For corrections BS-key.) If 20 characters have been typed, other
keystrokes then BS- or RET-key will be ignored.

At the moment you press the RET-key the info-line is cleared and the text:
"Searchstring:" followed by the string you have typed is displayed at the left
side of the info-line. The search-action starts.

If the searchstring could not be found, the text on the info-line is replaced
by: "NOT FOUND    ** Hit a key **"   The info-line is cleared if you hit a key.
If the searchstring is found the matching card is displayed on screen with the
cursor placed behind the last character of the string that has been found.
On the right side of the info-line appears the text: "Continue search ?  Y/N"

If you answer "Y" (or "J") searching continues in the same card to see if the
searchstring exists elswhere in some field. If not the remaining part of the
datafile will be searched.

If another key then "Y" or "J" is pressed this will be interpreted as "NO"
and the found card will stay on screen.


FUNCTION F7 - OPTION 4	 (Preset preferent field)

					    Ŀ
If option 4 has been chosen the window is   	   PRESET PREFERENT FIELD     
replaced be another window as shown to the  Ĵ
ringht with the cursor behind "Type line-     Preferent field: linenumber .. 
number". The existing linenumber of the       Oke ?  If so, press RET-key    
preferent field is printed where the 2 dots   To change:  Type linenumber    
are. The text in the window is self explai-   and press SELECT-key	      
ning. You should type the linenumber of the 
new preferent field, which will appear at the cursor-position. (BS=key for
corrections) The linenumber must be confirmed with the SELECT-key.

If you press the RET-key nothing will be changed, even if you already typed a
linenumber. The window will be removed. This feature is ment to be used if you
wish to see which field is the preferent field at the moment.

If the SELECT-key has been pressed the typed linenumber is checked. If there
is no field defined on that linenumber a faultmessage is displayed on the
info-line and you must correct the linenumber or delete it. You cannot go on
as long as a faulty linenumber exists in the window. If the linenumber is the
same as that of the existing preferent field, the window will be removed and
nothing will be changed.

If the linenumber is ok the linenumber on the first line of the window is
replaced by the new linenumber. The first 3 characters of the new preferent
field (of each card) are copied to the indexes. During this action the 2nd,
3rd and 4th line of the window are replaced by the message:

		  "Updating memory, a moment please"

Updating the index executes very fast. After updating the index it is sorted
alphabetically in the order of the new preferent field. On the info-line
appears the message:

     "Sorting index for new preferent field, please wait untill ready ...."

As soon as sorting is ready this message and the window are removed.

Sorting the updated index is THE ONLY FUNKTION THAT CANNOT BE EXECUTED FAST.
With a file containing 2048 or more cards, you must really wait some time. If
the preferent field begins with a series of cyfers the sorting time will be
longer then if letters only. Never think that the program "hangs" if you have
to wait 1 or more minutes (with large files), but have some patience until the
rather complicated sorting-job has been done. With small files sorting is ready
in a couple of seconds.


FUNCTION F7 - OPTION 5	(Multi-string search)


Option 5 allows searching of up to 3 strings in a card. The 1st string is
used to search a matching card. The 2nd and evt. 3rd string are searched for
within the found card. If found, the card is displayed on screen with the
cursor placed behind the 3rd found string. If not all 3 strings are found in
the same card, search continues in the next cards of the datafile. The use of
more then 1 searchstring offers a finer selecting then the use of only 1
string. (options 1, 2 or 3)



If you have choosen option 5, menu 1 will be replaced by menu 2 as shown below.
Menu 2 is not yet a real menu. You must fill in the kind of the desired
search-actions and the searchstring for each search-action. The words
"1st Search" are highlighted to indicate that this is the action which has to
be programmed.

The lower part of the window holds directions for use. As in menu 1 you can
toggle between Y/N case sensivity. You can make your choise either here with
the TAB-key or in menu 1 with number-key "6". The result is the same.

The ESC-key is NOT active if the cursor is IN THE WINDOW. (Something must
be filled in.) If 'ESC' pressed the programming of multi-search is cancelled
and the window is removed. This offers you the possibility to start programming
all over again if you might have made some mistakes you wish to correkt.

The numbers 1-6 to the left of the window are not really there on screen, but
are placed to point to the lines when there functions are discussed below.

	 Ŀ
	 	  MENU 2  Multi search (within 1 card)	      
	 Ĵ
  1	   1st Search:      In start preferent field	      
  2	 						      
  3	   2nd Search: 				      
  4	 						      
  5	   3rd Search: 				      
  6	 						      
	 Ĵ
	   [TAB]  Uppercase/lowercase sensivity       Y/N    
	   [Spacebar]	       Wrap around options	      
	   [SEL] Fix option   [RET]  Start search	      
	   [Cursor/down]      Choose search (for corrections)
	   [ESC]	       Cancel menu & choices	      
	 

PROGRAMMING MULTI-SEARCH ACTIONS.

Up to 3 search-actions can be programmed. For each search-action you can
choose 1 of the 3 search methods as discussed earlier (options 1, 2 and 3).
These options are:

    Search   1. in start preferent field	  (see option 1, menu 1)
	     2. in start field at linenumber ..   (see option 2, menu 1)
	     3. in all fields			  (see option 3, menu 1)

Text 1 is preprogrammed for the 1st search. Repeatedly pressing the spacebar
wraps around the text for the 3 options 1-3 as stated above. If the desired
option is on screen, press the SELECT-key to program it for the 1st search.

Assumed that "1" has been choosen, the lines 1-3 will change as shown below:

  1	   1st Search:      In start preferent field	      
  2	 		     1st String:....................  
  3	   2nd Search: 				      

The highlichted bar has been moved to the place of the dotted line and the
cursor is behind the colon. You must now type a searchstring with a length of
maximum 20 characters. (BS-key for corrections.) More then 20 characters are
ignored, but at least 1 character must be typed, otherwise a faultmessage can
be expected. The search-string is comfirmed and definitely programmed bij
pressing the RET-key. Now the 1st search-action is programmed and the high-
lighted bar is moved to the words "2nd Search", indicating that the 2nd search-
action may be programmed.



Because multi search acts on 1 card and there is only 1 preferent field on each
card, option 1 can only be used once. It means that only 1 of the possibele 3
search-actions can be programmed for a preferent field. The program "knows"
this and if preferent field has been used for the 1st search, pressing the
space bar will not wrap around only the text 2 and 3. (See previous page)

Assumed that text 2 has been choosen for the 2nd search-action, the lines
1-3 will be changed as below:

  1	   1st Search:      In start preferent field	      
  2	 		     1st String:....................  
  3	   2nd Search:      In start field at linenummer ..  

After pressing the SELECT-key the highlighted bar is moved from the left part
to the right part of line 3. The two dots are in a highlighted square and the
cursor is placed there. Now you must type the linenumber of the field in the
beginning of which shall be searched. The linenumber is definitly programmed if
it is confirmed with the RET-key.

The program checkes if there is a field defined on the typed linenumber. If not
a fautmessage will appear at the info-line and you must correct the linenumber
otherwise you cannot go on. Typing the linenumber of the preferent field is
allowed, but in that case the search will be done as if it is an ordinairy-
and not the preferent field. If the linenumber is accepted the lines 3 and 4
change as shown below:

  1	   1st Search:      In start preferent field	      
  2	 		     1st String:....................  
  3	   2nd Search:      In start field at linenummer ..  
  4	 		     2nd String:....................  
  5	   3rd Search: 				      

The highlichted bar has been moved to the place of the dotted line and the
cursor is behind the colon. You must now type a searchstring with a length of
maximum 20 characters. (BS-key for corrections.) More then 20 characters are
ignored, but at least 1 character must be typed, otherwise a faultmessage can
be expected. The search-string is comfirmed and definitely programmed by
pressing the RET-key. Now the 2nd search-action is programmed and the high-
lighted bar is moved to the words "3rd Search", indicating that the 3rd search-
action can be programmed.

Programming the 3rd search-action is identical to the 2nd search-action. The
only difference could be, that you don't have to type a linenumber if search
in all fields is choosen. If the searchstring has been typed and confirmed by
pressing the RET-key, the highlighted bar jumps to the words "1st Search" on
the 1st line. Now you have the opportunity to alter searchactions already
programmed. The cursor/up/down keys allows moving the highlighted bar up or
down to 1 of the 3 search-actions. After that the searchmethod may be changed
(or not) using the spacebar and after pressing the SELECT-key the searchstring
can be altered. This feature is ment for minor changes, otherwise it is easier
to press the ESC-key and start programming again by pressing F7 and key "5".

Anyhow, if the highlighted bar is on the leftside of line 1, 3 or 5. the multi-
search is started if you hit the RET-key again. (a secound RET). As long as
programming is not ready, take care not to hit the RET-key twice accidently.
If that happens multy search will be started. Nothing can go wrong, but there
happens something you did not yet wanted and you will have to start again with
programming multi search.

If preferent field is used it is advised to program it as the 1st search-
action. It gives the advantage of the amazing speed of searching in a preferent
field.




Multi search can be programmed for 3, 2 or 1 search-actions with resp. 3, 2 or
1 searchstring. Multi search works with only 1 programmed search-action, but
in that case it is only a complicated way to do something that can be done
much easier with one of the options 1, 2 or 3 of menu 1. (See pages 18 & 19)

If a card is found, which contains all programmed searchstrings, that card is
displayed on screen an on the info-line appears the question:

		      "Continue search ?  Y/N"

If your response is "NO" the card found will stay on screen and the info-line
will be cleared, otherwise multi search will check if the last searchstring has
more then 1 match in the found card. If so the card is displayed again, with
the cursor behind the other matching string. If not, multy search continues
searching in the remaining part of the datafile.

If no matching card has been found, the message "NOT FOUND    Hit a key"  is
dispalyed on the info-line. The info-line is cleared by hitting a key.


FUNCTION F7 - OPTION 7	 (Search numeric value)

This option searches for a numeric value in a numeric field. It can be
searched for:

     Either: A value smaller then a typed value
	 or: A value equal or larger then a typed value

If you have choosen option 7, menu 1 will be replaced by menu 3 as shown
below:

	 Ŀ
	  MENU 3   SEARCH CARDS FOR A NUMERIC VALUE ( => or < ) 
	 Ĵ
	     Linenumber of numeric field to be tested: ..	 
	     Value to compare with: .....................	 
	     Search for:	equal or larger/smaller value	 
	 Ĵ
	   Type linenumber (RET), value (RET), select either	 
	   'equal/larger' or 'smaller' using spacebar, Hit RET  
	   to start search.	 (ESC = cancel menu & choices)	 
	 

Where the 2 dots are, there is a highlighted square with the cursor in it.
First you should type the linenumber of the numeric field of which the value
must be tested. (BS-key for corrections) The number you type will appear in
the highlighted square. After confirming it by pressing the RET-key, the
program checkes if a numeric field has been defined on the given linenumber.
If not, a faultmessage will be displayed on the info-line. In that case you
must correct the linenumber, otherwise you cannot go on.

If the typed linenumber is ok, the dotted line will be highlighted and the
cursor moves to that highlighted bar. There the numeric value will appear,
which you must type now. The syntax of the numeric value must follow the same
rules as usual for values in MSX-basic. You may type a number with or without
a decimal point, but also a scientific notation may be used (single or double
precision) or the notation &H.... or &B........

After confirming the typed value by pressing the RET-key, the program checkes
the syntax. If it is not correct a faultmessage appears on the info-line and
you must correct the syntax of the typed value, otherwise you cannot go on.

If the syntax is ok the highlighted bar will move to the next line, covering
the words "equal or larger". The space bar can be used to move the highlighted
bar to the word "smaller" or back where is was initially. With the spacebar
you make your choice between 1 of the 2 options.
As soon as you hit the RET-key the window is removed and the search action will
start. If a card has been found which meets the choosen condition, that card is
displayed on screen with the cursor behind the value searched for. On the
info-line appears the question:

		    "Continue search ?  Y/N"

If your response is "Y" (or "J") the search will continue in the remaining
part of the file. Any other key pressed is interpreted as "NO". In that case
the found card will stay on screen.

A found card can be printed out (screendump) or various printer actions can be
performed automatically. Details are discussed in the chapter printerfunctions.

If the search-action is not succesfull the message "NOT FOUND    Hit a key"
will be displayed on the info-line. Hitting any key will clear the info-line.


		    ARITHMETIC FUNCTIONS - Functiekey F8
		    

Arithmetic functions are performed with values, present in numeric fields. If
you did not define numeric fields, when designing your card with the main
program FLEXBASE, it is obvious that no arithmetic functions can be executed.
In that case pressing functionkey F8 results in the following message on the
info-line:
	      "There are NO NUMERIC FIELDS defined !   Hit a key"

It means that the entry to arithmetic functions is denied. Hitting any key
will clear the info-line.

If there is not yet a datafile in memory there is also a faultmessage displayed
on the info-line and the entry to arithmetic functions is denied too.

If there is a datafile in memory and there are also 1 or more numeric fields
defined, functionkey F8 gives access to the arithmetic functions. They can act
either on all cards or on cards selected with a searchfunction. Together with
the programmable kinds of arithmetic functions a considerable number of
possibilities are available. It makes a workprogram usable for many admini-
strativ applications. The arithmetic functions were designed to meet most of
the wishes of interviewed persons who were interested in a program like this
one. There has been choosen for a step by step programming system, where the
various arithmetic functions can be used or skipped. It offers a wide range
of options which should satisfy the wishes of the user for his or her
applications.


ARITHMETIC FUNCTIONS


1. There can be choosen which of the present numeric fields will be used.

2. The functions can be performed using either all cards or using cards
   selected with search functions. if the last mentioned option is choosen the
   program will switch over to the search functions as soon as the programming
   of the arithmetic functions is completed.

3. The values in the numeric fields within each card can be used for 1, 2 or 3
   calculations. The flexability is enlarged by the possibility to use 1
   numeric value which is not in a field, but typed by the user. For each of
   the maximum 3 calculations you can choose for adding, subtracting, multi-
   plication or devision with 2 values of your choice. The result of a calcu-
   lation can also be used as arithmetic factor for another calculation.



4. The results of the programmed calculations with carddata are automatically
   summed to a total for all cards (or for the selected searched cards).
   Maximum 4 totals can be programmed. It means that, assumed there were 2
   calculations programmed (point 3 above), another 2 totals can be calculated
   using the value in 2 numeric fields, to be choosen by the user.

5. The totals itself can be used again as arithmetic factors for maximum 3
   calculations (add, subtract, multuply or devide). Also a value typed by the
   user can be used as arithmetic factor. A user-value can be typed only once.
   Either for using it here or as mentioned under point 3 above. The result of
   a calculation with totals can also be used again as arithmetic factor for
   another calculation with totals.

The broad number of possibilities seems to be a rather complex task to program
it. The program uses a dialog system with questions and user-response, which
leads the user through the available options in an easy way. The user just
has to answer the questions to get what he (she) wants. It reduces a compli-
cated job to a simple way of programming without problems.


PROGRAMMING ARITHMETIC FUNCTIONS

If functionkey F8 has been pressed a window is opend as shown below. This
window will be changed according to the choices you make during programming.
The lower part of the window holds instructions for the user, which will change
also according to the choices made. The ESC-key is always active. Pressing it
cancels what has been programmed already and removes the window. The ESC-key
can be used if you are not satisfied with your work and wish to start program-
ming again.

  Ŀ
    PROGRAMMING ARITHMETIC FUNCTIONS EVT. COMBINED WITH SEARCHFUNCTIONS   
  Ĵ
*   Numeric fields at line(s):    6(= A)  8(= B) 11(= C) 12(= D) 15(= E)  
  Ĵ
   Selection fields to be used for arithmetic function(s)		   
  									   
   Place cursor on linenumber of desired field(s)			   
   SELECT:  Fix field choice						   
   DELETE:  Cancel choice at cursorposition				   
   RETURN:  Confirm field(s) selection 				   
  			 ESC: Quit programming				   
  

The line marked with "*" is an example how this line could look like. The
program "knows" on which linenumber(s) a numeric field has been defined.
Those linenumbers are filled in on this line in the order of the numbers. The
program gives each linenumber a substitute lettercharacter. That character
will be used for programming because 1 letter is easier to handle then a number
which might consist of more then 1 character. This line will not be changed
anymore during programming. It is ment to be a reminder for the user.

The example shows the situation if the maximum number of numeric field has
been defined. Assumed there were only 2 numeric fields, then this line would
show "A" and "B" only. Behind "B" this line would be empty. The linenumbers on
the example-line are imaginairy.


FIELDS CHOICE

First you have to deside which fields you wish to use for arithmetic functions.
The cursor points to the 1st numeric field (on "6"). Move the cursor to a
linenumber to be used and press the SELECT-key. The linenumber and the substi-
tute letter will be highlighted to signal that the field has been choosen.
Repeat this for all numeric fields you wish to be used. You may cancel a
wrong choice by moving the cursur to the field and pressing the DEL-key.
As you have completed your choices hit the RET-key to program your choices
defenitly. The window will be changed as below:

  Ŀ
    PROGRAMMING ARITHMETIC FUNCTIONS EVT. COMBINED WITH SEARCHFUNCTIONS   
  Ĵ
    Numeric fields at line(s):    6(= A)  8(= B) 11(= C) 12(= D) 15(= E)  
  Ĵ
   Arithmetic functions to be executed on:				   
  									   
  	 [ 1 ]	 Selected cards (using search functions)		   
  	 [ 2 ]	 All cards in memory (no search functions)		   
  									   
  	 Make you choice (1 or 2)					   
  			 ESC: Quit programming				   
  
				Example 1


This text is self explaning. Press either numberkey "1" or "2" to make your
choice.

If option 1 is choosen the program will switch to the search-function menu
as soon as programming arithmetic functions has been completed. (See pages 18
up to 23 for search-functions). If option 1 is choosen the window changes as
shown below. If option "2" is choosen the words 'Selected cards' on the line
marked with "*" will be replaced by 'All cards'.

  Ŀ
    PROGRAMMING ARITHMETIC FUNCTIONS EVT. COMBINED WITH SEARCHFUNCTIONS   
  Ĵ
    Numeric fields at line(s):    6(= A)  8(= B) 11(= C) 12(= D) 15(= E)  
*   Arithmetic functions to be executed on: Selected cards		   
# Ĵ
  	      Arithmetic functions within card desired ?  Y/N		   
  									   
  
				Example 2

The head of the window up to the line marked with "#" will not be changed
anymore. This header will not be shown anymore in following examples.

You must answer "Y" (or "J") or press any other key for "NO". If your
response is 'NO' the programming of calculations with the data within the
card, is skipped. First option "NO" will be discussed. The progress for "YES"
will follow after that.


PROGRAMMING SUMMING CARDDATA

If another key then "Y" (or "J") is pressed it is interpreted as "NO" and the
window will be changed as below.
6 Ĵ
7  CALCULATION FACTORS CARD: W = value to be typed			   
8 									   
9 	   W	A    B	  C    D    E					   
10									   
11									   
12 SUMMING CARD DATA:	    sum . = I					   
13									   
14    Another summing function  Y/N					   
15    Choose factor for summing.  (Corrections: DEL-key)		   
16    Confirm with RETURN.						   
17			 ESC: Quit programming				   
18
			      Example 3

Ignore the text on line 14 of example 3. At this stage it is not yet displayed.
Line 7 should be ignored too as well as the letter "W" in line 9. They are not
valid for summing but for calculations only. The other letters on line 9 are
the letters of the numeric fields you have choosen to be used for arithmetic
functions. They correspond with the highlighted fields in the header. (see
page 25.) Line 11 will be used for calculations within a card, as will be
discussed later.

Example 3 assumes there were 5 numeric fields, which have been choosen all.
If there would have been choosen 3 fields only, then of coarse there would be
3 field letters. The displayed letters (except "W") are the factors which can
be used for summing.


PROGRAMMING SUM-FUNCTIONS

The cursor is on line 12 behind "sum" on the dot. By typing one of the
letters displayed on line 9 (except "W") you select the value in that field to
be used for calculating the sum of that value of either all cards or the
selected cards (see example 1).

The typed letter appears on the cursorposition. If you type "W" or another
letter then those on line 9, the program will ignore it. For corrections
press the DEL-key and type a letter again. Your choice is programmed by
hitting the RET-key. After that the question on line 14 will appear as already
shown in example 3.

Answering the question erases the question on line 14. If your answer is "Y"
line 12 is expanded with "sum . = J" and you must type a letter which you
have not used before for summing, otherwise it will be ignored. After
confirming it with the RET-key, the questing will appear again in line 14 etc.
In this way maximum 4 sums can be programmed. (Sums I, J, K and L.)

If 4 sums has been programmed or you have answered the question with "NO"
earlier, the programming of sums is completed. At that moment the letters
behind "W" on line 9 are replaced by the letters for the sums, which are
programmed. If 1 sum programmed the letter I, if 2 the letters I and J, if
3 the letters I, J and K, if 4 the letters I, J, K and L. These letters
represent the value of the calculated sum. They can be used for calculations
with totals. This will be discussed later.


PROGRAMMING CALCULATIONS WITH CARDDATA

If example 2 (see page 26) is on screen and you answer the question with "Y"
the window will be changed as shown below. The text on line 13 is not yet
displayed.

6 Ĵ
7  CALCULATION FACTORS CARD: W = value to be typed			   
8 									   
9 	   W	A    B	  C    D    E					   
10									   
11 CARD CALCULATIONS:	    . . . =					   
12									   
13    Another card calculation  Y/N					   
14									   
15    Type successively: 1st factor, arithmetic sign (+, -, * or /)	   
16    and 2nd factor.	   (Corrections: BS-key)   Confirm with RETURN.    
17			 ESC: Quit programming				   
18
			      Example 4



The cursor is placed on line 11 on the first of the 3 dots. Now you can
program up to 3 calculations, which are using the values of numeric fields
within a card. The calculations are executed with each card (or each searched
card).

Programming is simular as discussed for summing, but now we have to choose the
2 factors and the arithmetic function. There can be choosen for add or subtract
or mulpiply or divide using resp. "+", "-", "*" or "/"  as arithmetic sign.
The factors (choosen fields, see page 25) for the calculations are listed on
line 9. You can also use the letter "W" as a factor. This value you can type
only once. After that it is valid for this programming session.

If you press key "W" the first time, during programming (see below), the
cursor moves to line 7 behind the word 'typed'. There appears the value you
type, to be used as factor "W". The syntax must follow the rules valid for
MSX-basic (See page 2). After typing the value comfirm it by pressing the
RET-key. The program checkes the syntax and if it is faulty a faultmessage
appears on the info-line.

In that case you have to correct it, otherwise you cannot go on. If the syntax
is ok the cursor jumps back to line 11.

The instructions on lines 15 and 16 tell how to program the arithmetic
functions. The first key-stroke must be a letter, listed on line 9. If not, it
will be ignored. The 2nd must be +, -, * or /, otherwise it will be ignored.
The 3rd must be a letter again, listed on line 9. If not, it will be ignored.
For corrections use the BS-key. You are free to use a letter twice, for example
A * A for a square or B + B. You may also use the same letter in different
formula's like C + D and C - A  etc.

If you are sure the formula is ok, comfirm it by pressing the RET-key. This
programs the calculation formula. It cannot be changed anymore. If you have
made a mistake, the only way out is the ESC-key to cancel the programming.
You have to start programming all over again. So, check if what you have typed
is correct before you hit the RET-key.

As soon as the RET-key is pressed the question, which is already shown in
example 4 above, appears on line 13. If your answer is "Y" line 11 is expanded
with: ". . . = G" and line 9 is expanded with the letter "F". This letter
represents the result of the 1st arithmetic function you have programmed. It
means that you may use this letter as a factor for a 2nd or 3rd calculation if
you wish.

Now you can program a 2nd calculation in the same way. The letter "G" is added
to the list on line 9 after hitting the RET-key and the question appears again
on line 13.

If you answer "Y" line 11 is expanded with ". . . = H" en you can program the
3rd (and last) calculation. Now you may use also the letter "G" as a factor
for the 3rd calculation. Hitting the RET-key completes the programming of
calculations within a card.

If you answered the question with "NO" earlier, this also completes the
programming. The only difference is that there are 1 or 2 formula's on line 11
in stead of 3.

Calculations within each card make sense only, if something will be done with
the results (F, G and H). Therefore the results are summed to a total either
for all cards or for selected cards. (See page 25, option 1 or 2). The sums
of the results are automatically programmed and displayed as such in the
window as if you had programmed it.

Assume that 2 calculations within a card has been programmed. In that case
the window might look like example 5 below. The formula's are imaginairy. They
are just an example.

6 Ĵ
7  CALCULATION FACTORS CARD: W = value to be typed  0.175		   
8 									   
9 	   W	A    B	  C    D    E	 F    G 			   
10									   
11 CARD CALCULATIONS:	    A + B = F	E * W = G			   
12 SUMMING CARD DATA:	    sum F = I	sum G = J			   
13									   
14    Another summing function  Y/N					   
15    Choose factor for summing.  (Corrections: DEL-key)		   
16    Confirm with RETURN.						   
17			 ESC: Quit programming				   
18
			      Example 5


If you compair examples 5 and 3 (on page 26) you can see that the completion of
programming calculations within cards is the start of the programming of sums.
Example 5 is in fact the same situation as when programming of calculations has
been skipped, but line 11 is not blank anymore and on line 12 there are 2 sums
automatically programmed. Because maximum 4 sums can be programmed, there can
be programmed another 2 sums as described on page 26 by answering the question
with "Y". If you do so, the letters "F" and "G" cannot be used anymore because
the are used for the automatically programmed sums. The other letters on line
9 (except "W") can be choosen for programming a 3rd and 4th sum. After that the
programming of sums is completed and the program switches to programming
calculations with totals.

If you answer the question on line 14 with "NO" the programming of sums is
also completed. Assumed you programmed indeed sums 3 and 4, then the window
might look like example 6 below:


6 Ĵ
7  CALCULATION FACTORS CARD: W = value to be typed  0.175		   
8 									   
9 	   W	I    J	  K    L					   
10									   
11 CARD CALCULATIONS:	    A + B = F	E * W = G			   
12 SUMMING CARD DATA:	    som F = I	som G = J   som C = K	som D = L  
13									   
14									   
15    Total-arithmetic funktions desired  Y/N				   
16									   
17			 ESC: Quit programming				   
18
			      Example 6


On line 12 you see the 1st and 2nd sum, automatically programmed with the
results of the formula's on line 11. The 3rd and 4th sum are imaginairy to
complete example 6. On line 9 the available letters for sums are replaced by
the letters, representing the results of summings, the totals. These totals
(I, J, K and L) are the factors, which can be used for calculations on totals.

If the question on line 15 is answered with "NO" the programming of all arith-
metic functions is completed. The program starts with execution of the arith-
metics, but if you programmed to do the job with selected cards the program
will remove the window and switch to SEARCH FUNCTIONS for programming the
desired search function(s). After that the window is restored as it was and
the execution of the arthmetics starts. The results I, J, K and L are displayed
in the bottom of the window. They stay there untill you press the ESC-key to
remove the window.



PROGRAMMING CALCULATIONS ON TOTALS

If you answer the question on line 15 with "Y" the window will be changed for
programming total-calculations. It might look like example 7 below. Ignore the
text on line 14. At this stage it is not yet displayed.

The programming is exactly identical to the programming for card calculations.
(See page 27 and 28)  The only difference lies in the factorletters that can
be used for the formula, listed on line 9. Now this are not the fields anymore
but the results of summing, the totals.

  Ŀ
    PROGRAMMING ARITHMETIC FUNCTIONS EVT. COMBINED WITH SEARCHFUNCTIONS   
  Ĵ
    Numeric fields at line(s):    6(= A)  8(= B) 11(= C) 12(= D) 15(= E)  
6 Ĵ
7  CALCULATION FACTORS CARD: W = value to be typed  0.175		   
8 									   
9 	   W	I    J	  K    L					   
10									   
11 CARD CALCULATIONS:	    A + B = F	E * W = G			   
12 SUMMING CARD DATA:	    som F = I	som G = J   som C = K	som D = L  
13 TOTAL-ARITHM. FUNCTION: . . . = M					   
14    Another total-arithmetic function  Y/N				   
15    Type successively: 1st factor, arithmetic sign (+, -, * or /)	   
16    and 2nd factor.	   (Corrections: BS-key)   Confirm with RETURN.    
17			 ESC: Quit programming				   
18
			      Example 7

Maximum 3 total-calculations can be programmed. Their results are represented
by the letters M, N and O for resp the 1st, 2nd and 3rd total-calculation.
After programming each total-calculation line 9 is expanded with the letter
for the result which has been programmed. This letter may be used for a
next total-calculation if wou wish.

The programming is completed if either 3 total-calculations are programmed or
if the question on line 14 has been answered earlier with "NO". The program
starts with execution of the arithmetics, but if you programmed to do the job
with selected cards the program will remove the window and switch to SEARCH
FUNCTIONS first for programming the desired search function(s). After that the
window is restored as it was and the execution of the arthmetics starts. The
results I, J, K, L, M, N and O (if programmed) are displayed in the bottom of
the window. The stay there untill you press the ESC-key to remove the window.


SUMMARY

Explaning the programming of arithmetic functions was a long story. Doing it
however is quite simple. The program leads the user through all the options
step by step. He (she) can either use a function or skip it by answering "NO".
Thats all that has to be done. The programming of a function asks nothing
more then pressing 1 or 3 keys followed by the RET-key. Each key-stroke is
controlled and if a wrong key is pressed it will be ignored. So, only valid
factors can be used for various calculations. The program cannot be disturbed
by faulty input.










		      P R I N T E R   F U N C T I O N S
		     

The printerfunctions are designed for the aibility to use any type of printer.
First a summary of available options.

AVAILABLE PRINT OPTIONS

1.  Printing a screendump of whatever is displayed on screen.

2.  Printing all cards automatically. Details programmable with option "P"
    of the printer menu.

3.  Printing automatically the cards selected with search-function(s). Details
    programmable with option "P" of the printer menu.

4.  Printing automatically ALL FIELDS of either all cards or cards selected
    with search-function(s). Details programmable with option "S" of the
    printer menu. (selectiv printing)

5.  Printing automatically a SELECTABLE NUMBER OF FIELDS in a selectable
    sequence. This can be done either using all cards or using cards selected
    with search-function(s). Details programmable with option "S" of the
    printer menu. (selectiv printing)


ADJUSTMENTS FOR AVAILABLE PRINTER

Because MSX-printers are rather slow or because they are not for sale anymore,
many MSX-computers are connected to a non-MSX printer. The flexability of
FLEXBASE therefore also covers printing facilities for non-MSX printers. There
are a number of facilities implemented, which make it possible to use any
non-MSX printer with the FLEXBASE-workprogram.

Most non-MSX printers have the possibility to adjust them as an IBM-compatible
printer. So, printers can be classified in the following 3 groups:

    1. MSX-printers	 2. IBM-kompatible printers	3. Other printers

Every printer has a number of charactersets on board, which can be selected.
An IBM-compatible printer can be set for using the IBM-characterset 2, which
is known as "USA CODEPAGE 437, SET 2". This characterset shows the best
resemblance with the MSX-characterset. The characters with ascii numbers
32 - 175 (&H20 - &HAF) and 224 - 254 (&HE0 - &HFE) are identical with MSX.
You will find a copy of the IBM-characterset 2 on the last page of this manual.
You can use that to check if your printer has this characterset. See your
printermanual and if present find out how this set can be selected and make
a note where the printercodes for selecting it are given. (You need that later)

All printerfunctions are programmable for your printer. If you quit the program
everything concerning printer en printing will be written to the workprogram
on disk. If you start the workprogram a next time it is loaded again, so you
have to program details for your printer only once. Changes can always be made
and are saved if you quit the program. At a next programstart the last adjust-
ments will be there again.

Many printers have buttons/keys to make presets. Almost always those presets
can also be done by sending a string of codes to the printer. Such a string of
codes is known as "setup-string". FLEXBASE offers the possibility to program
6 setup-strings for each of the 3 groups of printers, mentioned above. Each
setup-string can be up to 10 characters long, so, more then 1 setup-string
can be chained together to a maximum length of 10 characters. Preprogrammed
setup-strings are very usefull because one or more setup-strings can be
selected to be sent automatically to the printer before the printing itself
starts.

If 1 of the setup-strings contains the codes to reset the printer to its
standard adjustments, that string can be selected to be used to reset the
printer automatically after completion of the printjob. It would adjust the
printer as if it was just switched on.

Once the setup-strings and their use are programmed. A command to start
printing is enough to make the printerdriver do the job with your printer,
which encloses: setup printer, print what has to be printed en reset printer.

You can program different setup-strings for different printer presets and
select the string(s) you need for a certain printing job. The 3 groups of
printers (MSX, IBM-compatible or other printer) each have their own setup-
string-table. If you possess more the 1 printer you can program the setup-
strings for each printer in the table for it, so there is no need to change
any string. Just plug in the printer. Then choose the printertype in the
printer menu, which automatically selects the use of the setup-string-table
for the choosen printer. That's all !

Every printer is able to print characters with an ascii-number from 32 up to
126. Characters with a lower or higher ascii-number are printed problemless
by an MSX-printer. Other printers can print too some MSX-karakters (with other
ascii-numbers as mentioned above), but they need mostly a different ascii-
number as an MSX-printer to print them. To solve this problem there are
conversion tables build in for an IBM-compatible-printer and for an other
printer too. The printerdriver uses these tables to convert the ascii-number
of an MSX-character to the one for the non-MSX-printer.

If you have choosen either an "IBM-compatable printer" or "other printer" from
the printer menu, the printerdriver will automatically use the conversion table
for the choosen printertype. These tables are preprogrammed for those
characters certainly needed for printing out a card or a screendump. You can
change the preprogrammed tables if you wish or add other characters and their
ascii-numbers for conversion. With the manual of your printer and the
directions given later, the programming of the conversion tables (if needed)
will be no problem.


		       PROGRAMMING PRINTERFUNCTIONS
		       

Pressing functionkey F9 gives acces to all printerfunctions. Its opens the
printermenu window as show below.

PRINTER CHOICE	(Options 1, 2 en 3)

The "*" sign will be placed   Ŀ
before option [ 1 ] if you     		PRINTER MENU		     
start the workprogram the 1st Ĵ
time and option 5 is replaced    [ 1 ]  MSX-printer			     
by a blank line because this   * [ 2 ]  IBM- or IBM compatible printer      
option is not valid for an       [ 3 ]  Other printer			     
MSX-printer. If either option    [ 4 ]  Input or change SETUP-strings	     
2 or 3 is choosen the "*" sign   [ 5 ]  Input or change conversion data     
will move to the choosen         [ P ]  Progr. printerdriver cards (CTRL-P) 
option and option 5 will be      [ S ]  Progr. printerdriver fields (CTRL-S)
displayed. The "*" sign shows Ĵ
for which printertype the        ESC:	Remove this window		     
printerdiver is programmed.   

		 PROGRAMMING/CHANGING SETUP-STRINGS   (Option 4)
		 
Press key "4" to choose the option. The printer menu will be replaced by the
prgramming window for setup-strings shown on the next page. The mark "(6x)" is
not present. It is put there to tell that there really are 6 blank lines and
not 2 as shown in the example. The blank lines will be filled with maximum 6
setup-strings if you program them.
If there were setup-strings programmed earlier, they were saved and they will
be displayed here in stead of blank lines. The example shows the window as if
option 1 (MSX-printer) has been choosen and no setup-strings were programmed
earlier. The setup-string table for MSX-printer is 1 of 3 tables. The other 2
tables are identical. Only the headerareis different. They read:

    either:  DEFINING SETUP-STRINGS FOR IBM-PRINTER
	or:  DEFINING SETUP-STRINGS FOR OTHER PRINTER (NON MSX, NON IBM)

The cursor is placed on the dot behind 'Code-char.:' and all dots on the line
are highlighted, what indicates that these places are reserved to display the
data to be typed. The instructions are listed in the lower part of the window.

  Ŀ
  		    DEFINING SETUP-STRINGS FOR MSX-PRINTER		   
  Ĵ
    (6x)								   
  									   
  Ĵ
    Code-char.: .   Setup string: ... ... ... ... ... ... ... ... ... ... 
  Ĵ
   For 'code-character':   Type MSX-character + <return>                  
   Setup-string:   Type ascii-number or character between " "  + <return> 
   Store setup-string:     Press SELECT				   
   Delete setup-string:    Type code-char. + <return>, then press DEL-keyV
   Back to printermenu:    ESC-key					   
  

CODE-CHARACTER

The code-character is an MSX-character, which represents the whole setup-
string. You may conceive it as the name if a setup-string. As you will see
later, using the code-character programs the whole string to be used. As code-
character you must select MSX-characters. It is advised to use characters that
you will never use in any field of a card. This prevents possible confusion.
The following MSX-characters are advised to be used as code characters:

			@, ~, C, E, D, F

because these characters are are also available on TURBO-R computers. The
program will not accept the grafic characters for line pieces. They are already
used for frames around card en windows. Also the characters with ascii-
numbers 1, 2, 7, 11, 12, 13, 14 and 15 are not accepted because they are not
available on Turbo-R computers. Other grafic characters are allowed as code-
character, but if used it is not sure anymore that the workprogram also can be
runned on a TURBO-R machine. Using the advised characters above, ensures that
a werkprogram made on an MSX-2 machine will also run properly on a TURBO-R
machine and other Japanese machines like MSX-2+.


PROGRAMMING SETUP-STRINGS

An example will be the best way to explain how to program setup-strings.
Assume you wish to set an MSX-printer on a pitch of 12 characters/inch and a
left margin with a width of 8 characters and you wish to reset the printer
after printing is done.

The printercodes for 12 characters/inch is "ESC E" {in basic it would be
print chr$(27);"E"}. The ascii-number for "ESC" is 27 decimal and for the
capital letter "E" it is 69 decimal.

An MSX-printer cannot be set for a margin by software, so, that must be done
by adjusting the paperguides, to guide the paper 8 positions more to the
left.


The printercodes to reset the printer are "ESC @". You might think: "This is
impossible because '@' is one of the suggested codes for setup-strings", but
a code-character for a setup-string is never send to the printer, it is the
name of the string, which the program internally uses to find the setup-string
in the table. So, there is no problem to send "@" to the printer as a printer-
code. The ascii-number for ESC" is 27 decimal en for "@" it is 64 decimal.

The printercodes mentioned above can be found in the manual of an MSX-printer.
For other printercodes please look there. Suppose you will use 1 of the
suggested code-characters, say "@". Now you type this character. It appears
behind the words "Code char.:". (BS-key is active for corrections.) Next you
confirm it by hitting the RET-key. The cursor jumps to the 1st of the 10
highlighted fields behind "Setup string:",where the dots are (see example on
the previous page).

Now you must type the printercodes of the setup-string. The program  accepts
2 notations for a printercode: For characters with an ascii-number from 32 up
to 126 the character itself, between double quotes, is excepted. The ascii-
number is always accepted. If the program finds a notation which is unexcep-
table it ignores the faulty keystroke. If your printer manuel lists the code
in hex-notation you cannot use that. In that case translate the hex-code to a
decimal number and type that.

First you type '27', the ascii-number for ESC, and confirm it with <return>.
The cursor goes to the next field. Next you type the capital E as either "E"
or 69 decimal, followed by <return>. The cursor moves again to the next field.
This completes the input of the 1st setup-string. It is programmed if you press
the SELECT-key. It clears the highlighted fields and puts the programmed setup-
string in the upper part of the window, which is the setup-string-table.

Next input the 2nd setup-string typing: ~, RET-key, 27, RET-key, 64 (or "@"),
RET-key, SELECT-key. After programming both setup-strings are dispalyed in the
upper part of the window looks. It looks as shown below.

  Ŀ
  		    DEFINING SETUP-STRINGS FOR MSX-PRINTER		   
  Ĵ
  	      "@":   27   "E"                                              
  	      "~":   27   "@"                                              

As you see the name of the string is displayed between double quotes followed
by a colon. The printercodes are displayed as a character between double quotes
if their ascii-nummer in the range 32 - 126, otherwise the ascii-number is
displayed. The reason for displaying printercodes in this way is:  With
non-MSX-printers there is no predictable relation between the character and its
ascii-number (out of the range 32 - 126). It depends on the printertype, which
character is attached to which ascii-number.

The code-character "@" represents now the setup-string for printing with a
pitch of 12 characters/inch and the code-character "~" represents the string
for resetting the printer. How to use the code-characters is discussed in the
paragraph 'programming the printerdriver'. (See page 40)

If setting up your printer needs more then 1 setup-string you may chaine the
strings together to maximum 10 printercodes. If you would set an IBM-printer
to a pitch of 12 char./inch and a left margin of 8 positions, you would need
the strings:	ESC, ":"    and    ESC, "X", 8, "X"  and you may chaine them
together and type:   27  ":"  27  "X"  8  "X"

After pressing the SELECT-key this will be displayed in the setup-string-table
for an IBM-compatible printer as:

  	      "@":   27   ":"  27   "X"  8    "X"                         

If you are ready with programming setup-strings press the ESC-key to return to
the printer menu.
Each of the 3 setup-string-tables can contain 6 setup-strings. 1 is ment to be
used for resetting the printer. It leaves 5 strings for presetting the printer.
Because single strings can be chained together there is sufficient space for
programming more then 1 printerpreset (for different printingjobs).

    NOTE: Only 1 setup-string can be used for resetting the printer.

Because everything programmed for printing is saved when you quit the program,
programming needs to be done only once.

TIP: If you possess more then 1 printer, the codes for a printer preset are
     nearly always different too. If you program the setup-string(s) for 1
     particular printjob in the tables for the printertype, then use in each
     table the same code-character for setup-strings for the same job. If
     you follow this suggestion everything will fit always if you only choose
     the printertype in the printer menu, without the need to change the
     programming of the printerdriver. (Discussed later)


DELETING OR CHANGING SETUP-STRINGS

To delete a setup-string, type the code-character for it. That appears behind
"Code-char.:"   Then press the DEL-key. The code-character will be removed and
the setup-string will be removed form the table too. It is not displayed
anymore.

To change a setup-string, type the code-character for it. That appears behind
"Code-char.:"   Then press the RET-key. The 1st printercode from the table will
appear in the 1st field behind "Setup string:" with the cursor behind the code.
Now you can either use the BS-key to delete the code and evt. type another one,
or leave it as it is. After that press the RET-key to recall the next code
from the table to the next free field. Repeat this untill all the codes you
need are changed (or not) and displayed in the fields. If you finally press the
SELECT-key, the setup-string will be copied to the table again. Remember that
codes you did not recall will be deleted automaticaly. What you see in the
highlighted fields is what you get in the table.

Finally press the ESC-key to return to the printer menu to choose another
option or to cancel the printer menu with ESC.


	     PROGRAMMING/CHANGING CONVERSION DATA   (Option 5)
	     

If the printer menu is on screen and a non-MSX printer has been choosen,
option 5 is displayed in the printer menu. If you choose option 5, the printer
menu will be removed and the programming window for the choosen printertype
will be opened.

For an IBM-compatibel printer, as mentioned before, the IBM-characterset 2
(USA CODEPAGE 437, SET 2) shows the best resemblance with the MSX characterset.
The graphic characters used for frames around card and windows are included in
the IBM-set 2, but their ascii-numbers are different. These characters and some
others are preprogrammed in the conversion table for an IBM-compatible printer.
If you select characterset 2 for the printer everyting fits.

IBM-compatible printers have sometimes dip-switches to select characterset 2 or
know printercodes to select it or both. In that case you should use the
printercodes in a setup-string, so you can leave the dipswitches untouched. If
you use a setup-string (see previous paragraph), selecting the IBM-compatible
printer in the printer menu is enough to use that printer.

The printer manuel contains the information how to select characterset 2 and
if printercodes exist or not to select it by software.


If you don't have looked up yet the necessary information for an IBM-compatible
printer, you might select "other printer" (option 3 in printer menu) to do a
printjob. The results won't look very nice, but it works. For "other printer"
the conversion table is preprogrammed to convert the graphic characters for
frames to other characters with ascii-numbers smaller then 126. Remember that
characters with an ascii-number larger then 126 cannot be printed if "other
printer" has been selected unless they are programmed in the conversion-table.
Otherwise they will be replaced by a space.

The option "other printer" as well as the preprogrammed conversion table for it
is ment as an escape possibility if you have not yet found the printercodes for
IBM or if there is no printer manual available. However if you possess an
"other printer" and its manual, you can reprogram the conversion table for it
to get a 100% satisfying print quality.

If the option 2 (IBM) in the printer menu is choosen followed by option 5 the
printer menu will be replaced by the programming window as shown below.

  Ŀ
  		      CONVERSION TABLE IBM PRINTERDRIVER		   
  Ĵ
   "" = 192   "" = 193   "" = 217   "" = 196   "C" = 3     "E" = 5    
   "" = 195   "" = 197   "" = 180   "" = 179   "D" = 4     "F" = 6    
   "" = 218   "" = 194   "" = 191   "U" = 21                           
   ( 5x )								   
  Ĵ
    Code-char.: .  Ascii-number:  ...					   
  Ĵ
   For 'code-character'    Type MSX-character + <return>                  
   Ascii-number:	    According to USA codepage 437 set 2  + <return>
   Delete conversion-code: Type code-character + <return>, Press DEL-key  
   Back to printermenu:    ESC-key					   
  

On the 3 lines below the header the contents of the conversion table is
displayed. The added mark ( 5x ) tells that there is not 1 blank line as shown
but there really are 5 blank lines. The table can contain 48 sets conversion
data displayed on 8 lines.

The code-character is the MSX-character which must be converted because it has
an other ascii-number for IBM then for MSX. In the table it is displayed
between 2 double quotes. Behind the '=' sign the other ascii-number valid for
the IBM-characterset 2 is displayed. The printerdriver uses this table for the
conversion of an MSX-character to the ascii-code for the IBM-printer.

The cursor is placed behind 'Code-char.:' The lower part of the window contains
instructions how to program the conversion table. (BS-key for corrections.)

If you have choosen for IBM-compatible printer in the printer menu, the
conversion table for IBM will be used automatically by the printerdriver.
The same counts for the conversion table for other printer if "other printer"
is choosen in the printermenu.


PROGRAMMING CONVERSION DATA

Behind 'Code-char.:' there is a highlighted position in stead of the shown dot.
Where the 3 dots are shown there is a highlighted field of 3 positions. Here
the data will appear you have to type. First type the MSX-character you want to
be converted. Comfirm it by pressing the RET-key. The cursor jumps to the
highlighted field behind 'Ascii-number:' Next you must type the ascii-number
as a DECIMAL NUMBER. If your printer manual contains Hex.-notations only,
you must translate them to decimal. Other then numberkeys will be ignored.
A copy of the "USA codepage 437, set 2" is added as last page of this manual.


Finally press the RET-key to program the data you typed. The inputline is
erased and the data will be displayed in the table. In the same way you can
program more sets of data. If 48 sets are programmed the table is full. An
attemp to input more, results in a faultmessage on the info-line.

DELETING OR CHANGING PROGRAMMED CONVERSION DATA

Type the MSX-character you wish to delete or change. It will be copied from
the table to the input line. Pressing the DEL-key erases the data from the
table and the inputline. To changed the ascii-number use the BS-key to erase it
and type the new number. Finally press the RET-key to program the corrected
data. The old data in the table will be replaced by the new data.

If you have deleted a set of data, there is an empty (free) place in the
conversion table, which is not displayed in the window. If you input a new set
of data, it will be placed in the first free place in the table and appear
there if you program it by pressing the RET-key.

WARNING: If you wish to practice programming, avoide changing the already
preprogrammed data. You could mutilate it easily. If this happens accidently
you need the example on the previous page to restore the programming as it
was, otherwise correct functioning of the printerdriver is not guaranteed.
   Ŀ
    We suggest not to change the preprogrammed data. Use the program-	
    window for expansion of the conversion table only. If the printer- 
    driver would fail, you are sure that the new data is responsible.	
   

CONVERSION TABLE FOR "OTHER PRINTER"

If option 3 (other printer) is choosen in the printer menu and then you choose
option 5, the printer menu is replaced by the programming window for "other
printer" as shown below.

  Ŀ
  	  CONVERSION TABLE PRINTERDRIVER (NON-MSX, NON-IBM PRINTER)	   
  Ĵ
   "" = "|"   "" = "-"   "" = "|"   "" = "-"   "" = "|"   "" = "-"  
   "" = "|"   "" = "-"   "" = "|"   "" = "|"   "" = "|"              
   ( 6x )								   
  Ĵ
    Code-char.: .  Ascii-number:  ...					   
  Ĵ
   For 'code-character'    Type MSX-character + <return>                  
   Ascii-number:	    See ascii-table in printermanual + <return>    
   Delete conversion-code: Type code-character + <return>, Press DEL-key  
   Back to printermenu:    ESC-key					   
  

As you see this conversion table is preprogrammed too. Because the characters
behind the "=" sign have assci-numbers in the range 32 - 126 the characters
itself are displayed in stead of the ascii-numbers. It is the same system as
explained in paragraph 'setup-strings'.

The option "other printer" and the preprogrammed conversion table for it is
ment as an escape possibility if you have a non-MSX printer and no manual for
that printer. If you have a manual you can change the table and program the
correct ascii-numbers for the characters which are preprogrammed now. This is a
minimum requirement for the printerdriver. You may expand the table with data
for more characters with a higher ascii-number then 126, which you might use
in the fields of your card (or the design of the card).

Programming is identical as described for the conversion table for IBM-printers
on page 36 and 37. We suggest to search the printer manual for the correct
ascii-numbers and write them on paper. Then start with changing the table
itself. This is the best way to avoid faults disturbing the printerdriver.

			     PRINTER COMMANDS
			

At the start of a printcommand the program tries to check if the printer is
ready. With a MSX-printer The program can 'see' if the printer is not switched
on or switched in standby mode (= not ready). With a non-MSX printer it is
mostly not possible to see if the printer is switched on, but only if it is
switched in standby mode (assumed the printercable is wired properly. In that
case it is your responsibility to check if the printer is switched on. If the
program finds the printer to be "not ready" next message is displayed on the
info-line.

"Printer not ready. Correct fault and hit a key.  (ESC = cancel printcommand)"

Printing will start if the fault has been corrected, followed by hitting a key.
If the fault message does not disappear and you don't know the reason (it might
be a defective printercable) the program would be captured in this trap. To
escape from this trap the ESC-key is active. Pressing it cancel's the print-
command and the program returns to where it was before the printcommand.

There are 4 key combinations for printingcommands:

   1.	CTRL-D	Prints a screendump, whatever is on sceen.
   2.	CTRL-P	Prints cards in the way as programmed.
   3.	CTRL-S	Prints the contents of field(s) in the way as programmed.
   4.	CTRL-Q	Stops printing, started with CTRL-P or CTRL-S.


SCREENDUMP  (CTRL-D)


The key combination "CTRL-D" Activates following actions. One or more setup-
strings are send to the printer, if programmed (see page 38). Screendump
is printed. Finally the setup-string for resetting the printer is send to the
printer, if programmed (see page 39). The program uses the same setup-strings
as programmed for the command "CTRL-P". If you have not programmed the
code-characters for setup-strings, to be used with CTRL-P, the printerdriver
will not send setup-strings to the printer with the command "CTRL-D" either.

After making the screendump the paper is not thrown out. You must feed in a
new sheet if it gets full. With other printcommands paperfeed can be controlled
by the programming. (See page 43 & 49, continuous printing Y/N)


PRINTING CARDS AUTOMATICALLY  (CTRL-P)


If there is no data file in memory yet, the command "CTRL-P" is ignored.
Only if there is an empty card on screen it is accepted, but it will be
executed as if the command "CTRL-D" for a screendump was given.

The command "CTRL-P" activates the printerdriver to print either all cards or
only the cards selected by a search function. Before printing the 1st card,
setup-string(s) are send to the printer. After printing the last card a setup-
string for printer reset is send to the printer. The execution of the command
will be done as programmed. Option "P" of the printer menu gives access to the
programming window. If printing cards is programmed there, the command "CTRL-P"
will be ignored.


PRINTING FIELDS AUTOMATICALLY  (CTRL-S)

If there is an empty card displayed or there is no datafile in memory yet, the
command "CTRL-S" is ignored.

If no choice was made for printing either all cards or cards selected by
search-functions, only the fields of the card on screen will be printed once as
programmed for selective fields printing. (See page 50,51) This is a feature
to test if the programming is according to what you had in mind.

Before printing the field(s) of the 1st card, setup-strings are send to the
printer. After printing a setup-string for printer reset is send to the
printer. Setup-strings are sent only if their code-characters are programmed.
(See next page)

Details are discussed in paragraph "Programming selective field printing".


STOP PRINTING	(CTRL-Q)

The key-combination CTRL-Q commands the printerdiver to stop sending data to
the printer if all data for a card are transferred to the printer. The command
CTRL-P of CTRL-S given earlier is cancelled and finally a setup-string for
printer reset is send to the printer if the code-character for it has been
programmed. If you have choosen for the option to print fields of cards
selected by a search-function, you must HOLD DOWN the key-combination CTRL-Q
UNTIL THE NEXT CARD HAS BEEN FOUND by the search-function and displayed on
screen.

If your printer has a buffer memory, it will continue printing until its
buffer is empty. In that case there is only one possibility to stop printing
imidiately. Switch off the printer.


			 PROGRAMMING PRINTERDRIVER
			

Option "P" in the printer menu gives access to programming features of the
printerdriver. Pressing "P" removes the printer menu and opens the programming
window as shown below. The numbers on the left of this example are added to
identify a line when its function and details are explained.

For the programming of 'printing fields' another programming window is used,
where more details can be programmed. This will be explaned in the next
paragraph. (See page 44)

The options for printing cards (lines 4-8, left part) is joined with the
adjustments of the printerdriver (lines 1-3 and 9-11). The programmed details
on these lines define what will happen if the commands CTRL-D, CTRL-P or CTRL-S
are given to start printing. CTRL-S needs also details programmed in the other
window (option "S" in printermenu).

    Ŀ
    	    PROGRAMMING PRINTERDRIVER, PRINTING CARDS (VIA CTRL-P)	
    Ĵ
1     Printerstart command 'CTRL-S'    Setup-string(s):                
2     Printerstart command 'CTRL-P'    Setuo-string(s):                
3     Numbered pages: yes/no	first pagE nr.:       Le/Mi/Ri		
    Ĵ
    		     'CTRL-P'                         'CTRL-S'         
4     print All cards		      yes/no 	Programmed printing of	
5     print searcHed cards	      yes/no 	    selected fields	
6     number Of cards per page:      1      Ĵ
7     Blank lines between cards:     1 				
8     contInuous print (sheetfeeder) yes/no  autom. Formfeed	yes/no	
    Ĵ
9   	Printer reset at end of printing (or Quit by CTRL-Q)  yes/no	
10  	    if started by 'CTRL-S':  Use reset-setup-string:            
11  	    If started by 'CTRL-P':  Use reset-setup-string:            
12    ESC: Finish programming. 	Using printerbuffer:   ON/OFF	
    

On each line 1 or more capitals are highlighted. These are the commandletters
to be used for choosing the option to be programmed. Pressing the key for the
commandletter either toggles between YES/NO (or ON/OFF) or the cursor will
appear in a highlighted smal field to fill in a number.

This system makes directions for use superfluous because you can see which
commandletter has to be used to program an option.

REMEMBER THIS: As long as the cursor is visable, the programming of an option
	       is not completed. In that case any commandletter and also the
	       ESC-key will be ignored.


SETUP-STRING(S) FOR PRINTING FIELDS  line 1


The letter "S" (of CTRL-S) is the commandletter. If pressed the cursor appears
at the end of the line.

Now you must type the code-character(s) of the setup-string(s) to be sent to
the printer before the start of printing fields of the 1st card. You can type
maximum 5 code-characters for (5) setup-strings, which you have programmed
earlier for printing fields. (See pages 31-35)	The setup-strings are sent to
the printer in the order you typed them. By pressing the RET-key your choice of
setup-strings is programmed and the cursor disappears as a sign that another
commandletter can be used. If you press the RET-key without typing anything
the cursor disappears too, but nothing is programmed. If you type a code-
character, which is not programmed a faultmessage will appear on the info line.
You must correct the faulty character, otherwise you cannot go on.

If you wish to delete/change what has been programmed earlier press key "S" and
delete the code-character(s) using the BS-key. Type other code-character(s) for
a change or erase them for deletion. Then press the RET-key to update the
programming.


SETUP-STRING(S) FOR PRINTING CARDS  line 2


The letter "P" (of CTRL-P) is the commandletter. If pressed the cursor appears
at the end of the line.

Now you must type the code-character(s) of the setup-string(s) to be sent to
the printer before the start of printing the 1st card. You can type maximum 5
code-characters for (5) setup-strings, which you have programmed earlier for
printing cards. (See pages 31-35)  Programming, deleting or changing is done
in the same way as described above for line 1.


PAGE NUMBERING AND THE PLACE OF PAGE NUMBERS  line 3


The letter "N" (of Numbered) is the commandletter. If pressed it toggles
between yes and no. One of those 2 words is highlighted. Pressing key "N"
moves the highlighting from 1 word to the other one. It shows which of the 2
options is programmed. If "NO" is programmed the right part of line 3 is
neither valid nor programmable. If "YES" it is valid and programmable.

The letter "E" (of first pagE) is the commandletter. If pressed the cursor
appears behind "page nr.:" and you may erase the existing number with the
BS-key and type the page number to be printed on top of the first sheet.
(maximum length of the number is 3 characters) The number is programmed by
hitting the RET-key. The number zero is not allowed. If you would type that,
the program will change it and display "1" if you hit the RET-key.

At the end of line 3 you see "Le/Mi/Ri". This are shorts for the words Left,
Middle and Right, which is the place where "Page ..." will be printed on top of
the sheet. One of the 3 words is highlighted, showing which place has been
programmed. The commandletters L, M and R are active. If pressed the high-
lighting moves to the corresponding word. The keys L, M and R are ignored if
for the page numbering "NO" has been programmed.

After printing the pagenumber the paper is moved up 2 lines, leaving 1 blank
line below the pagenumber. If page numbering is not programmed the paper is
also moved up 2 lines. There are 2 blanklines because no pagenumber was
printed. It means that the position of the first printed line is always the
same wether the pagenumber is printed or not.


RESET PRINTER YES/NO   lines 9, 10 and 11

This option needs some explanation. If a printjob is ready the program behaves
as if the key-combination "CTRL-Q" would have been pressed to quit printing.
With this option you decide wether the printer must be resetted or not.

The letter "Q" (of Quit) on line 9 is the commandletter. If pressed it toggles
between "yes" and "no". One of those words is highlighted, showing which of
the 2 options is programmed. Pressing key "Q" moves the highlighting from "yes"
to "no" vica versa. If "no" is highlighted the lines 10 and 11 are neither
valid nor programmable. If "yes" is highlighted lines 10 and 11 are valid and
can be programmed. If you program "no" on line 9 you don't need to erase what
is programmed on lines 10 and 11 because those lines are not valid anymore.


RESET SETUP-STRING FOR PRINTING FIELDS	line 10

The letter "C" (of CTRL-S) is the commandletter. If pressed the cursor will
appear at the end of the line. Now you must type the code-character for the
setup-string to reset the printer, which you have programmed earlier. (See
pages 31-35)  Pressing the RET-key programs the code-character and removes the
cursor. If you did not type a code character nothing is programmed. If you
erased an existing code-character by pressing the BS-key the existing
programming is deleted, as the RET-key is pressed.

To change the code-character press key "C", press BS-key, type an other code-
character and finally press the RET-key to change the programmed code-
character. If no code-character has been programmed no setup-string will be
sent to the printer to reset it.


RESET SETUP-STRING FOR PRINTING CARDS  line 11

Letter "T" (of CTRL-P) is the commandletter. The code-character for resetting
the printer is of coarse the same as for printing fields on line 10. In fact
you decide here if the printer must be resetted or not after printing cards.

The programming is identical as described above for line 10.


PROGRAMMING PRINTING CARDS   lines 4 - 8

(The right part of lines 4 and 6, in the box, is information only.)

Line 4 requires some explanation. Printing of "ALL CARDS" starts always with
the card which is on screen at the moment you press the key-combination CTRL-P.
This is done to offer the possibility to print only a part of the cards
stored in memory. Now you are able to print a large datafile partly and
continue later with the next part. The option for choosing the 1st page number
serves the same purpose. As discussed on page 17 you can select the card you
wish, to be displayed on screen and then start printing. So, you can continue
printing cards where you stopped printing earlier.
The indexnumbers internally used as cardnumbers might change if cards are
changed or deleted. This has been explained on page 15. This could be a com-
plication if printing all cards in parts. See page 16 how you can work with
fixed cardnumbers or cardcodes.

If you press CTRL-P to start printing all cards a message is displayed on the
info line, which reads: "Printing starts with cardnumber .....    OKE  Y/N"
This reminds you that printing will start with the card, which is on screen.
You may cancel the printcommand by answering "NO" and first call the card you
wish to be displayed on screen. (See page 17, selectfunction) Then you can give
the printcommand CTRL-P again. Answering "Y" starts printing in the way as
programmed on lines 6, 7 and 8.


PRINTING ALL CARDS   line 4

The letter "A" (of All) is the commandletter. If pressed it toggles between
"yes" and "no". One of those words is highlighted and the highlighting moves
from one word to the other one, showing which of the 2 options is programmed.

If you press key "A" and on line 5 "yes" has been programmed already, then this
program will change the programming on line 5 from "yes" to "no" because only
one of the options on lines 4 and 5 is possible. Printing all cards is in fact
preprogrammed here and printing starts if you give the command to do it by
pressing CTRL-P (See page 37). If "no" is programmed on both lines 4 and 5 the
command CTRL-P will be ignored, because what has to be printed has not been
programmed.


PRINTING SEARCHED CARDS  line 5

The letter "H" (of searcHed) is the commandletter. If pressed it toggles
between "yes" and "no". One of those words is highlighted and the highlighting
moves from one word to the other one, showing which of the 2 options has been
programmed.

If on line 4 the option "yes" has been programmed, this program will change it
to "no" if on line 5 also "yes" would have been choosen, because only one of
the options on lines 4 and 5 is possible. If on both lines "no" has been
programmed the printcommand "CTRL-P" will be ignored.

Printing cards searched with a search-function is in fact preprogrammed here
(line 5). To start printing 2 other conditions must be true. A searched card
must be displayed on screen (after choosing the search-function itself) and the
printcommand must be given by pressing the keycombination "CTRL-P". In which
order these 2 conditions are fullfilled does not matter. All cards found by
the search-function will be printed automatically in the way as programmed on
lines 6, 7 and 8.

As an alternative a searched card can be printed out using the command "CTRL-D"
(screendump), but this does not offer the options on lines 6, 7 and 8. These
options are details for printing cards automatically.


NUMBER OF CARDS PER PAGE   lines 6 en 7

A card will not be printed like it looks on screen. The 3 upper lines will be
replaced by 1 grafhic line to complete the frame around the card. After
printing the bottomline of the frame always 1 blank line will be inserted as
standard separation between the card and the next one. If you count the number
of lines on screen, inclusive the header and the bottomline of the frame and
then subtract 1, you have the number of lines needed for printing 1 card.
You know how much lines your printer can print on 1 sheet with the linefeed
distance you prefer. How many cards can be printed on 1 sheet ?


An example is the best way to explain how you calculate it. Assume you designed
a card with 12 lines + 3 lines header + 1 bottomline is 16 lines on screen.
There will be 16 minus 1 is 15 lines needed to print 1 card (inclusive 1 blank
separation line below the card). Assume the printer starts printing close to
the top edge of the sheet and linefeed is the standard 1/6 inch. In that case
66 lines can be printed on a sheet. The first 2 lines are blank (or 1 line for
the page number + 1 blank). So, 66 minus 2 is 64 lines are available for
printing cards. On 1 sheet 64 divided by 15 is 4 cards can be printed, leaving
4 lines unused. You could use them to let the printer print 2 blanks in stead
of 1 between 2 cards if you wish, but this not obligatory.

The letter "O" (of number Of cards) is the commandletter. If pressed the cursor
will appear behind the number (on line 6). Erase the existing number with the
BS-key and type "4" (calculated above). Finally press the RET-key to program
the number of cards per page. The cursor will disappear as a sign that another
commandletter can be pressed. If you should type zero the program would change
it and display the minimum number, which is "1", after hitting the RET-key.


BLANK LINES BETWEEN CARDS   line 7

The letter "B" ( of Blank) is the commandletter. If pressed the cursor appears
behind the number (on line 7). Programming is done identical as discussed for
cards/page (see previous page). The example calculation above showns that 2
blank lines could be programmed here if you wish, but 1 is the minimum, which
the program accepts. (A zero input wil be changed to "1".)


CONTINUOUS PRINTING YES/NO   line 8 (left)

The letter "I" (of contInuous) is the commandletter. If pressed it toggles
between "yes" and "no". One of those words is highlighted and the highlighting
moves from one word to the other one, showing which of the 2 options has been
programmed. If "no" has been programmed the printer will throw out the sheet
if the last card has been printed on the sheet. Some older types printer don't
do that, you have to do it by hand. On the info line appears the message:

		"Feed sheet into printer and press spacebar".

As soon as you have done that the next card will be printed on the new sheet,
etc. etc.

If your printer has a sheetfeeder or if you print on pinfeed forms, printing
can be done continuously if you program "yes" in stead of "no". In that case
the message mentioned above will not be displayed and changing sheets or moving
a pinfeed form beyond the perforation will be done automatically.

If a card is found by a search-function and the card is found and displayed on
screen, normally the message "Continue search  Y/N" is displayed. If you have
programmed on line 5 to print searched cards, this message will also appear
if "no" is programmed for continuous printing. However if "yes" is programmed
that message will not be displayed and the search will be continued without
this interruption. As a result the printing will be done real continuously
until all found cards are printed. (Or untill you press CTRL-Q to stop
printing.)


AUTOMATIC FORMFEED   line 8 (right)

The letter "F" (of Formfeed) is the commandletter. If pressed it toggles
between "yes" and "no". One of those words is highlighted and the highlighting
moves from one word to the other one, showing which of the 2 options has been
programmed. This option sends Y/N a formfeed signal to the printer after the
last card on a sheet has been printed.


If your printer is an older type, which cannot trow out the sheet, it does not
matter if a formfeed is send or not. The printer would not respond to it. Some
printers generate a formfeed signal automatically after printing the last
line that it can print on a sheet. If the programming of lines 6 and 7 would
result in a situation where the last printed line is also the last line the
printer can print, the printer might generate the formfeed signal. If this
happens or not, depends on the printertype. Most printers then ignore a form-
feed signal send by this program, but some printers don't do that, but will
perform a sheet change twice. In that case you must program "no" for automatic
formfeed.

In general you must always program "yes" for automatic formfeed if you have
programmed "yes" for continuous printing, because nearly all printers which
can work with pinfeed forms or have a sheetfeeder will respond correctly to
a formfeed signal send by this program. Many printers have a dipswitch to
switch off the automatic formfeed signal when working with PINFEED FORMS. If
you cannot get correct results with pinfeed forms, then use that switch and
program "yes" for 'automatic formfeed.

REMEMBER: if something goes wrong if the last card on a loose sheet has been
	  printed then change the programming for 'automatic formfeed'.


PRINTERBUFFER ON/OFF   line 12

Some japanese MSX2+ computers have no more then 64k RAM memory. This option
cannot be used for those machines because there is never free memory available
for the printerbuffer.

To keep as much memory as possible available for the datafile, the printer-
buffer is always switched off if you start this program. This is the only
option for printing of which the programming is NOT SAVED when quitting the
program.

The letter "U" (of Using) is the commandletter. Pressing it toggles between
"ON" and "OFF". One of these words is highlighted to show if the printerbuffer
is activated or not. Press key "U" to activate the printerbuffer. The program
will check how many memory is free and installs a printerbuffer as large as
possible with a maximum capacity of 128k. On the info-line appears the message:

	   ...k printerbuffer installed   ** Hit a key **

If there is less then 16k free memory, the following message appears:
"No free memory available anymore to install printerbuffer   ** Hit a key **"
If you press a key the word "OFF" will be highlighted again an the message
disappears.

If the printerbuffer is active and you change cards or add new cards to the
datafile it might happen that a message appears that the memory is full. This
happens because a new block of 16k memory is needed for the datafile and the
printerbuffer always inhibits all free memory to avoide internal switching
problems. In that case press F9 for the printer menu, then press "P" to open
the programming window and finally press key "U" to switch of the printer-
buffer.


SUMMARY

Explaning how to program all details about the printerdriver took many words.
The highlighted commandletters and programmed data offers a userfriendly
programmingsystem which is easy to handle because it shows everything you need
to know on 1 screen. The same system is used for programmed field printing,
explained in the next chapter. Programming is reduced to pressing 1 or a few
keys to get what you wish. At the end of this manual you will find a page which
shows the main structure of this program. It shows how the main functions work
and are coupled with each other.
		  PROGRAMMING SELECTIVE PRINTING OF FIELDS
		  

This is the part of the printerdriver, which is intended for printing the
contents of fields of the card(s). As like printing cards, discussed above,
either the fields of all cards or of cards selected by search-functions can be
printed. With each of those 2 options you can program to print either all the
fields of a card or a selectable number of fields in a selectable sequence.
The last mentioned option is very usefull for printing labels for adresses,
floppy disks, records, CD's, musiccassettes, etc.

If the printermenu is on screen and key "S" is pressed. the printer menu will
be replaced by the programming window as shown below. The numbers on the left
are added in this example to identify a line when its function and details are
explained. The programmingsystem is identical with that for the other printer-
driver programming window. The commandletters and the programmed data are
highlighted, showing what has been programmed.

REMEMBER: As long as the cursor is visable a programming action has not been
	  completed. Pressing a commandletter or the ESC-key will be ignored
	  as long as the cursor is on screen.

  Ŀ
  	    PROGRAMMING PRINTERDRIVER, PRINTING FIELDS (VIA 'CTRL-S')        
  Ĵ
1 			 Automatic printing fields of All cards  yes/no     
2 		    Automatic printing fields of Searched cards  yes/no     
3 				     Print all fielDs of a card  yes/no     
   Sequence of fields to be printed (linenumbers):		Ĵ
4   .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  (ESC: herstel)
  Ĵ
5 				  left or right aligNed lft/rig	     
6 	      left Margin desired (if left alined only) yes/no  width:  1   
7  Combining 2 fields on 1 line, separated by 2 spaces yes/no  nrs. .. ..  
8  cOmbining 2 fields on 1 line, separated by 2 spaces yes/no  nrs. .. ..  
9 	Blank lines after printing the fields of a card extra linefeeds 1   
10			   contInuous printing	 yes/no cards Per page  1   
11			    automatic Formfeed	 yes/no		     
  Ĵ
12    ESC: Finish programming		     Using printerbuffer  ON/OFF     
  

PRINTING FIELDS OF ALL CARDS Y/N  line 1

The letter "A" (of All) is the commandletter. If pressed it toggles between
"yes" and "no". One of these words is highlighted, showing which of the 2
options are programmed. If "yes" the fields of ALL CARDS will be used for
printing. How depends on the programming of lines 5 - 11.

If on line 2 the option "yes" has been programmed, this programm will change it
to "no" because only one of the options on lines 1 and 2 is possible. If on
both lines "no" has been programmed the printcommand "CTRL-S" will result
in printing only the fields of the card, which was on screen. This feature
allows you to check the effect of the details which are programmed on lines
4 - 9 before programming "yes" on line 1 or 2.


PRINTING FIELDS OF SELECTED CARDS Y/N	line 2

The letter "S" (of Searched) is the commandletter. If pressed it toggles
between "yes" and "no". One of the words is highlighted, showing which of the
2 options has been programmed. If "yes" the fields of cards, selected by a
search-function, will be used for printing. How depends on the programming of
lines 5 - 11.


If on line 1 the option "yes" has been programmed, this program will change it
to "no" if on line 2 also "yes" would be choosen, because only one of the
options on lines 1 and 2 is possible. If on both lines "no" has been programmed
the printcommand "CTRL-S" will result in printing only the fields of the card,
which was on screen. This feature allows you to check the effect of the details
which are programmed on lines 4 - 9 before programming "yes" on line 1 or 2.

Printing fields of searched cards will start if a searched card has been found
and displayed and, before or after that, the keycombination CTRL-S is pressed.
Though CTRL-S can be used to control with which searched card printing fields
should start. After start all cards found later will be used to print their
fields automatically, according to the programming in this window.


PRINTING ALL FIELDS OF EACH CARD "YES"   line 3

The letter "D" (of fielDs) is the commandletter. If pressed it toggles between
the words "yes" ans "no". One of those words is highlighted, showing which of
the 2 options has been programmed. If "yes" then all linenumbers of exsisting
fields are listed on line 4, where the dots are in the example window above.
The remark "(ESC: herstel)" is displayed only if "no" is programmed.
Fields would be printed in the sequence as they are on line 4 and in the way
as programmed on lines 5 - 11.


PRINTING ALL FIELDS OF EACH CARD "NO"   line 3

If you program "no" the remark "(ESC: herstel)" is displayed on line 4. If
never programmed before, line 4 is blank and the cursor appears at the left
side of line 4. Now you can type the linenumbers of the fields in the order
you wish them to be printed. If you programmed line 4 earlier, line 4 will
be filled in with the linenumbers you had choosen then and you can change them
as you wish.


FILL IN/CHANGE FIELDSELECTION	line 4

Following keys are active if "no" on line 3: Number-keys, cursor/left/right,
BS-key, INS-key, ESC-key and RET-key. This will be displayed on the info-line.

Linenumbers programmed earlier are stored separately in memory (might be
nothing). If you filled in or changed linenumbers and you made a mistake, you
can recall the original unchanged series of numbers by hitting the ESC-key.
The remark at the end of line 4 reminds this extra feature.

You must type the linenumbers in the sequence you wish them to be printed.
Maximum 2 cyfers are accepted, BS-key for corrections. Confirm each linenumber
by hitting the RET-key. The program checks if a field exists on the typed
linenumber. If not a faultmessage apprears on the info-line. In that case you
must correct it, otherwise you cannot go on. If ok the cursor jumps to the
next fill-in position. Now you should be carefull not to hit the RET-key twice.
This would complete the programming of the series of numbers and store them,
overwriting the series numbers programmed earlier, so you cannot recall them
anymore, but only what you just typed. Please read also the explanation for
lines 7 and 8.

You can change numbers you have already typed, but remember that after any
change you must always press the RET-key. If you would forget that the change
on screen will not be stored in memory.   EXAMPLE: Assume you want to delete
the last 2 numbers you typed. First you press cursor-left-key to move the
cursor behind the last number. Then erase it using the BS-key. Assume you do
not hit the RET-key but press cursor-left again and erase the 2nd last number
and finally hit the RET-key. Now you would see, that the 2nd last number is
deleted (not displayed anymore) but the last number is displayed again because
it is not deleted in memory due to the forgotten return.

The cursor/left/right key allow you to go to behind any number on line 4 for
changing or erasing it. Hitting the RET-key programs the change, displays the
changed series of numbers again and puts the cursor behind the last number.

The most left cursorposition is behind the 1st number. If you wish to insert
a number before the existing 1st number it would not be possible. Though
the INS-key is programmed (if pressed) to move all numbers, INCLUDED THE NUMBER
WITH THE CURSOR BEHIND IT,  1 place to the right, creating a free place with
the cursor in it to type a number. This makes it possible to insert a number
as the 1st one.

Programming line 4 is completed if you press the RET-key again. If the cursor
after a change is placed behind the last number you must hit the RET-key twice
to complete programming. Once to move the cursor to the next empty position and
once again to complete programming and remove the cursor. If you want to make
corrections now, just press the commandletter "D" twice. The programmed line 4
is displayed again and also the cursor. This is the same situation as if you
programmed line 4 during an earlier use of the FLEXBASE workprogram.


ALIGNING LEFT/RIGHT PRINTED FIELDS   line 5


The letter "N" (of aligNed) is the commandletter. If pressed it toggles between
"lft" and "rig". One of those words is highlighted to show which of the 2
options has been programmed.

If aligning right is programmed, a left margin is not possible. Therefore this
program will force the programming on line 6 to "no" if on line 5 "lft" is
changed into "rig".


LEFT MARGIN Y/N   line 6


The letter "M" (of Margin) is the commandletter. If pressed it toggles between
"yes" and "no". One of those words will be highlighted, showing which of the 2
options has been programmed. This option is very usefull for printing labels,
with a selection of the fields as will be explaned with an example.

If "yes" is programmed the cursor appears behind the number of spaces for
'width' and the programming on line 5 is forced to "lft" if is was "rig",
because a margin is only possible with left-aligning. You can change the
number of spaces, to be printed in front of each field, by using the BS-key
and typing the desired number. Maximum 2 cyfers are accepted. The typed number
is programmed if you hit the RET-key TWICE. The cursor will disappear if the
RET-key is pressed the 2nd time. This is done to get a uniform system for all
options in this window. If you should try to program the number zero, it will
be changed to the minimum, which is "1", if you hit the RET-key.

Changing the programming from "yes" to "no" will erase the number for the
left margin on the screen, it is not valid anymore but it stays stored . The
number will be valid and displayed again if programmed "yes" again.


COMBINING 2 FIELDS   lines 7 en 8


You have 2 times the possibility to program the printerdriver to print 2 fields
behinds each other on 1 line with 2 spaces between the contents of the fields.
This option might be used to print a townname and its postmark on the same
line, without the need to put them in the same field, when designing an
address-card. Different fields for data which more or less belong together,
might be an adventage for the use of search-functions. That's why the
combining-functions has been implemented.

For line 7 the letter "C" (of Combining) is the commandletter. For line 8 it
is the letter "O" (of cOmbining). If pressed it toggles between "yes" and "no".
One if those words are highlighted, showing what has been programmed. If "yes"
the cursor will appear behind "nrs." (on the 1st dot in the example). Here the
linenumbers of the fields must be typed in the order you wish them to be
printed. The BS-key is active for corrections. Maximum 2 cyfers are accepted
for a linenumber. After typing the 1st linenumber you must confirm it with
the RET-key. After that, the program checkes if a field exists on the line-
number. If not, a faultmessage is displayed on the info-line and you must
correct it, otherwise you cannot go on. Next the program checkes if the 1st
linenumber is also programmed on line 4. If not another faultmessage tells you
that. If you typed a wrong number you must correct it, otherwise you cannot go
on. If you had forgotten to fill in the linenumber on line 4, the only way to
go on is erasing the linenumber with the BS-key and hit the RET-key. This
results in erasing the cursor and forcing "yes" to "no". and nothing is
programmed. Now you can change line 4 first (see page 46) and program line 7
(or 8) again.

If the 1st linenumber is oke the cursor jumps to the fill-in position for the
2nd linenumber. The 2nd linenumber does not need to be programmed on line 4,
but it is allowed. Type the 2nd linenumber and confirm it with the RET-key.
The program checkes if a field exist on the linenumber. If not a faultmessage
is displayed and you must correct it, otherwise you cannot go on. If the 2nd
linenumber is oke the cursors jumps to the right to show that it is accepted.
You can still use the BS-key for corrections. Finally the RET-key must be hit
again to program the 2 linenumbers. The cursor will disappear, which shows that
programming of the combination is completed.

Pressing the commandkey a next time changes the programming from "yes" to "no".
The linenumbers on screen will be erased. They are not valid anymore but they
stay stored. If you press the commandkey again to change "no" to "yes", the
stored linenumbers are valid and displayed again with the cursor behind the 2nd
linenumber. Now you can either change the linenumbers as described on page 47
or erase them to cancel the programming (see page 47) or you can hit the RET-
key twice, which leaves the programming as it was and erases the cursor.


NUMBER OF BLANK LINES	line 9


The letter "B" (of Blank) is the commandletter. If pressed the cursor appears
behind the number. Programming is identical as described for the left margin
(see page 47).

For printing fields the printerdriver behaves a little bit different as for
printing cards (see page 41). This is necessary for printing labels, which are
sticked on pinfeed-paper (see below). If printing cards the first 2 lines of
a sheet are always used for either a pagenumber + a blank line or for 2 blank
lines. For printing fields the use of the 1st 2 lines depends on the program-
ming of page numbering (in the other programming window) and the programming
for 'continuous printing on line 10 of this window, as follows:

Page numbering 'yes' + continuous printing 'yes' or 'no': 1st 2 lines used
Page numbering 'no'  + continuous printing 'no':          1st 2 lines used
Page numbering 'no'  + continuous printing 'yes':         1st 2 lines not used

When calculating how many times the fields of a card can be printed on 1 sheet
the information above is needed. Attent also "automatic formfeed" discussed
later.







CONTINUOUS PRINTING  Y/N   line 10 (left part)


The letter "I" (of contInuous) is the commandletter. If pressed it toggles
between "yes" and "no". One of the words is highlighted, showing what has been
programmed. If "no" has been programmed, the printer will throw out a sheet
if the programmed number of cards are handled. On the info-line next message
appears:     "Feed sheet into printer and press spacebar"
After following this instructions, printing will continue on the next sheet.

If your printer has a sheetfeeder or if you are using pinfeed-forms, printing
can be done continuously be programming "yes". In that case the message
mentioned above will not appear and paperchange (or move up pinfeed-paper
along the perforation) will be done automatically and printing will go on
uninterrupted.

If a search-function is used to find the cards of which the fields must be
printed, every time a card is found the message "Continue searching Y/N"
appears on the info-line if you programmed "no" for continuoes printing.
However if you programmed "yes" this message will not be displayed and printing
will continue uninterupted untill the last card has been found and printed.


NUMBER OF CARDS PER PAGE (FIELDS OF CARD)   line 10, right part

The letter "P" (of Per) is the commandletter. If pressed the cursor will appear
behind the programmed number of cards. You should change/type a number and
confirm it by pressing the RET-key. The minimum is "1". If you should type
zero, this program will change it to "1" if you hit the RET-key.

How to calculate the numbers of cards (field selections) per page is different
for either using pinfeed-paper or loose sheets. Please read what has been
written on the next pages with examples for labels on pinfeed-paper and labels
on sheets. All you need to know is explained there.


AUTOMATIC FORMFEED Y/N	 line 11

The letter "F" (of Formfeed) is de commandletter. Pressing it toggles between
"yes" and "no". One of those words has been highlighted showing which of the
2 options has been programmed.

If "yes" is programmed the printerdriver will send a formfeed signal to the
printer after printing the last field selection on a page. The response of
the printer depends on the type of printer to be used. This is discussed on
page 43 (automatic formfeed if printing cards). Printing labels on pinfeed-
paper might also show an unexpected response with some printers. Please read
the example how to print labels on pinfeed-paper on the next page, especially
the note at the end of the example.


PRINTERBUFFER ON/OFF   line 12

This is the same option as present in the other programming window for the
printerdriver. It does not matter which window you use for programming "ON" or
"OFF". The status of the printerbuffer is shown in both windows and identical.
For details and programming of the printerbuffer see page 44.


QUIT PROGRAMMING

Hit the ESC-key to quit programming and to return to the printermenu. There
you can either choose another option or return to commandlevel by hitting the
ESC-key again. On commandlevel the functionkeys are active. Pressing F1 will
display the window with the available commands.

		COMBINING SEARCH- AND PRINTERFUNCTIONS
		

To use a searchfunction the printerdriver must be programmed to use "searched
cards" (or fields of searched cards) and all relevant other details for the
printerdiver must be programmed too. If that's done you may press CTRL-P for
printing cards or CTRL-S for printing a field selection of cards. Printing
will start if the first searched card has been found.

If continuous printing "no" has been programmed, The printcommand CTRL-P or
CTRL-S does not need to be given before the searchfunction is choosen. It can
be given also at the moment a found card is displayed on screen. It offers
you the possibility to decide later with which found card printing will be
started. To select a searchfunction return to commandlevel (see above, quit
programming) and press F7. See page 18 how to choose/start a searchfunction.



	     PRINTING SELFSTICKING LABELS ON PINFEED PAPER
	     

All details for printing labels on pinfeed paper can be programmed on lines
5 - 11. Labels are mostly sticked on pinfeed paper with the same distance
between every label, around the perforation too. Assuming this is true, then
the 1st 2 lines must not be used. (3rd of the 3 conditions listed above.) It
means that you must program:  Page numbering "no"   in the other printerdriver
window (see page 40).  What else has to be programmed shows next example.

Assume: Printing with normal line distance of 1/6 inch. (linefeed)
	Labels sticked on 12 inch pinfeed paper.
	Distance between top of each label 2 inch = 12 lines. (6 labels/sheet)
	On each label 4 lines to be printed.

Line 10 should be programmed: Continuous printing "yes" (Together with 'no
pagenumbering', which avoides using the first 2 lines) and number of cards "6"
(6 labels/ sheet).

Label distance 12, minus 4 lines to be printed	=  number of blank lines 8.
Line 9 should be programmed for printing 8 blank lines.

Line 11: Automatic formfeed "yes" should be programmed (Please read what's
written about this on page 43-44.) Lines 1, 2 and 3: Set all to "no".
Line 4: Fill in linenumbers to be used. Program lines 5 and 6 for left aligning
and number of leading spaces to get the horizontal startposition. Program lines
7 and/or 8 if you need this option.

Now you can make a testprint to see if the result is as you wanted it to be.
If you don't want to wast any label, feed in a blank sheet in the printer and
press the keycombination CTRL-S. Because lines 1 and 2 are programmed "no"
the fields of the card (which was on screen) are printed once. Press CTRL-S
again to print the fields again. Remove the sheet and compare if distance and
horizontal start position fits with the position of the labels on pinfeed. If
necessary correct the programming on lines 6 (horizontal startposition) or
line 9 (distance between labels) and make a testprint again until everything
fits. Then you program "yes" on either line 1 or line 2. Finally press the
ESC-key twice to remove the window for printing and to return to commandlevel.

Feed in the pinfeed labels in your printer and adjust vertically to place the
1st label after a perforation under the printhead in the start position.
If you had programmed to print fields of 'all cards' press 'CTRL-S' to start
printing. If you had programmed to print FIELDS OF SELECTED CARDS, press
functionkey F7 to access the search-functions. Choose the desired search-
function and start it (see page 18). As soon as the first card is found and
displayed, press CTRL-S to start continuous printing of the labels of each
card, found by the search-funktion. Printing continues until no card is found
anymore, which contains the searchstring(s).

Note: Many IBM-compatible printers know the command "Cancel top and bottom
      margin". The printercodes for it are mostly: ESC O (capital letter O),
      in decimal ascii 27 & 79. Check in your printermanual if your printer
      has the same codes for this command, which inhibits generating a formfeed
      signal by the printer. You might need this command (in a setup-string)
      to inhibit the formfeed signal (generated by some printes) if the printer
      does not move the pinfeed paper along the perforation once, but moves it
      an extra sheetlength.



		PRINTING SELFSTICKING LABELS ON LOOSE SHEETS
		

Labels on sheets are placed almost always in more the 1 row. Normally this
program can print only labels in 1 row, but there is a trisk built in, which
makes it possible to print the 1st row first, then the 2nd row, then 3rd row
etc.  How to do that is explained below.

If you want to use 1 or more setup-strings program them first (see page 33-35)
and program their code-characters and the code-character for printer reset
(see page 41).

First take care that there is not an empty card on screen but any card of the
file, which contains filled-in fields, that you would like to print on labels.
Go to the printermenu by pressing funktionkey F9 and select option "S" to open
the window for programming the printing of fields. See the example on the
previous page, how to calculate the number of blank lines between the labels
of a row. Program the number of cards/page and the number of blanklines
(extra line feeds) accordingly. Set automatic formfeed = yes; Continuous
printing = no; Left or right alighed = lft; Left margin = yes; width = 1;
Printing fields of all cards = no; Printing fields of searched cards = no and
Print all fields of a card = no. Now fill in the linenumbers of the fields you
wish to be printed on the labels. Finally fill in (only if you need that) the
2 linenumbers for combining 2 fields and go back to commandlevel by pressing
the ESC-key twice.

Place a sheet of ordinairy paper in your printer to make a test print. Now
press CTRL-S. Because "all cards" and "searched cards" are both set to "no"
the fields of the card on screen are printed once. Next press CTRL-S again to
make a 2nd testprint. By compairing the testprint on the paper with a sheet
with labels on it, you can check if the horizontal position, the vertical
position and the distance between labels match. If not, you can correct the
horizontal position by changing the left margin and/or the number of extra
linefeeds to correct the distance between labels. If our printer has an auto-
matic sheetfeeder and the vertical startposition fits you are lucky, if not,
you cannot use the sheetfeeder for auto-feed-in but you must use the button for
feed-in 1 sheet and the button for a single linefeed to be able to print labels
on sheets. This will be discussed later.

If the vertical position of the upper set of printed fields is not correct, you
must measure how much milimeters higher the paper should be placed in the
printer to get the correct vertical start-position. If your printer has a
sheetfeeder calculate the number of linefeeds. (For the standard linefeed of
1/6 inch 1 linefeed = 4.2 milimeters.) After making corrections for margin
and/or number of extra linefeeds you should make another testprint to see if
everyting fits now. If our printer has a sheetfeeder use the button to feed-in
a new sheet. Next press the button for a single linefeed as many times as you
had calculated above to get the desired vertical start-position. If no sheet
feeder present adjust the vertical position of the paper to get the desired
vertical start-position. Now make another testprint as described above. If you
have made the right corrections the testprint should match with the position
of the labels on a sheet and the settings are ok.


Now you have to program the 1st or 2nd line in the programming window, see
page 45, for printing fields of ALL CARDS or SEARCHED CARDS. One of these 2
options must be programmed "yes", otherwise automatic printing cannot be
started with the command "CTRL-S". Go back to the printermenu by pressing the
ESC-key and press this key again to return to commandlevel.

There are 2 methods for printing labels on sheets:

1. You use 1 row of each sheet only. The other rows can be used later if you
   program the correct width of the margin for the horizontal position of
   another row.

2. You use all rows after each other. There is a special trick built in to do
   that, but you must know how many sheets with labels you need for printing
   all labels.

Assume there are 3 rows of 6 labels each, 18 labels per sheet. Assume 90 labels
must be printed, so you need 5 sheets.


IF PRINTING FIELDS OF "ALL CARDS":

Press the SELECT-key, type the indexnumber of the card with which printing
fields should start and hit the RET-key. The card will be put on screen.
Press CTRL-S to start automatic printing. The following message will appear on
the info-line:

  "Feed sheet into printer and press spacebar  (ESC: Change printersettings)"

Feed in a sheet with labels in the same way as you did to make the testprint
on paper and hit the spacebar. The printer starts printing of all labels of the
1st row on the sheet. As the last label has been printed the message "Feed
sheet", etc. (see above) will be displayed again on the info-line. Now feed-in
the next sheet and hit the spacebar. Repeat that until the 1st row of all
sheets is printed. Then feed-in the 1st sheet again, but DO'NT PRESS THE
SPACEBAR but now press the ESC-key. The built-in "trick" is now going to work
and puts the printermenu on screen. Choose option "S" to go to the programming-
window, where you must change the left margin. If for example the left edges
of the 1st and the 2nd row show a horizontal distance if 3 inches and the
printing pitch is 10 characters per inch, the left margin for the 2nd row is
the margin for the 1st row + 30 (3 * 10). After reprogramming the left margin
hit the ESC-key to go back to the printermenu and hit ESC again to leave the
menu. Now printing is imidiately resumed and the 2nd row is printed. Every-
thing goes on as described for the 1st row. If the 2nd row is printed on all
sheets, feed-in the 1st sheet again, then hit the ESC-key and go to the pro-
gramming-window to reprogram the left margin for the next row, etc. etc.

If your printer has a sheetfeeder and the vertical position does not need any
correction, you do'nt need to feed in each sheet manually but you can put all
the sheets you need in the sheetfeeder. Everything goes on as described above,
but in stead of feed-in 1 sheet and then hit the spacebar, you only have to
hit the spacebar and then the sheet will be fed-in automatically. After
printing a row on all sheets, put all sheets back in the sheetfeeder and go
on as described above.


IF PRINTING FIELDS OF SEARCHED CARDS:

Press funktionkey F7 to call the search-funktions-menu, choose the desired
searchfunktion and start it (See pages 18-24). If the 1st found card is
displayd on screen, give the printcommand "CTRL-S". Because the printerdiver
has been programmed for: "Continuous printing = no", next message will appear
on the info-line:

  "Feed sheet into printer and press spacebar  (ESC: Change printersettings)"

Feed in a sheet with labels in the same way as you did to make the testprint
on paper and hit the spacebar. The 1st label will be printed with the contents
of the fields of the found card. Meanwhile the next card has been found and
displayed and on the info-line appears the question: "Continue search  Y/N".
Now you should be carefull not to press any other key then "Y" (or "J"),
because this would cancel the searchfunktion and that would also be interpreted
as cancel printing !!  By pressing key "Y" (or "J") the next label of the row
is printed. Repeat pressing key "Y" untill the last label of a row has
been printed. the message "Feed sheet into printer", etc. (see above) will
appear on the info-line and you are back at the beginning of this paragraph.
Now feed in the next sheet and continue as described above.

If you use only 1 row of a sheet, repeat everything for each sheet as
described, untill the message "NOT FOUND" appears on the info-line. This means
that all labels are printed and printing is cancelled as if the "CTRL-Q" would
have been pressed. You may also stop printing earlier by really pressing
"CTRL-Q".

If you want to use all rows, you have calcutated the number of sheets which
will be needed. If the last label of the last sheet has been printed, feed-in
the first sheet again, but DO'NT PRESS THE SPACEBAR but now press the ESC-key.
The built-in "trick" is now going to work and puts the printermenu on screen.
Choose option "S" to go to the programming-window, where you must change the
left margin. If for example the left edges of the 1st and the 2nd row show a
horizontal distance if 3 inches and the printing pitch is 10 characters/inch,
the left margin for the 2nd row is the margin for the 1st row + 30 (3 * 10).
After reprogramming the left margin hit the ESC-key to go back to the printer-
menu and hit ESC again to leave the menu. Now printing is imidiately resumed
and the 1st label of the 2nd row is printed. and the message "Continue search
Y/N" appears again. Repeat pressing "Y" as described on the previous page
untill the last label of a sheet has been printed, feed-in next sheet etc.
untill the 2nd row on all sheets has been printed. Then you must feed-in the
first sheet again and hit the ESC-key to go to the programming window and
change the left margin again as described above. Repeat untill all rows are
printed.

If the message "NOT FOUND  hit a key" appears on the info-line it means that
all labels has been printed an printing is cancelled as if "CTRL-Q" would have
been pressed. You may also stop printing earlier by really pressing "CTRL-Q".



Did you know that MAD, DOETINCHEM sells a program for TURBO-R computers, that
implements either the IBM-characterset 2 or the complete MSX-characterset
(without any fault) in the computer. Each of those 2 charactersets can be
selected by the user at any moment. (from DOS level)

On model TURBO-R A1-GT it is possible to load the program on Sram-disk. It
means that the program stays present as the computer is switched off and starts
again if the computer is switched on. This feature uses the possibility on
model A1-GT to replace the built-in japanese software by other programs.

A printerdriver for IBM- or IBM-compatible printers is built in, which is
activated automatically if the user selects the IBM-characterset 2.

Keyboard layout of the MSX-characterset is nearly the same as the UK-keyboard
layout for MSX-2 computers. The program is prepaired to be placed on harddisk
and autostart from hard disk. From floppy disk it loads in a couple of seconds.
The program is loaded into Sram, so the normal Dram-memory is always completely
available for other programs.

	    Price Hfl. 15,-- exclusiv mailing costs.

Ordering address: MSX Avengers,
		  Kwartellaan 52
		  7071 JL  ULFT  (Netherlands)
			    PROGRAM STRUCTURE
			    
				    
	Ŀ
				       FUNCTION-KEYS
  Fill-in card	    F1 - Helpwindow  F2 - Save card
  	    F3 - Next card  F4 - Previous card
		    F5 - New card  F6 - Delete card
				 F10 - Quit program
			  SELECT-KEY	     
		       Type indexnumber      
			 Display card	     
			 	     
	Ŀ
				       			     
       F 7			     F 8			    F 9
ARITHMETIC FUNCTIONS		       		     PRINTERFUNCTIONS
 (combinable with) --------->  SEARCH FUNCTIONS  <---------- (combinable with)
				       			     
   Programming		       Ŀ	     
			       		  Multy search	     
    Execution		 Single search		       	     
    		       		   Programming	     
	Ŀ        	     
     Numeric	In a preferent	In other    In all     	     
      value	     field	 field	    fields     	     
		               	     
    Type value		       		       	     
Choice larger/smaller  Type searchstring       Type searchstrings    
			       		       	     
 Search & display	Search & display	Search & display     
 		     
								PRINTER MENU
	    Ĵ
       MSX printer	   IBM-kompatible	    Other printer    
	    		       printer			 	     
	    			  			 	     
	    		   conversion table	  conversion table   
	    		    pre-programmed	   pre-programmed    
	    			  			 	     
       Programming	     Programming	    Programming      
      Setup-strings	    Setup-strings	   Setup strings     
  Save if quit program	 Save if quit program	Save if quit program 
  	 	 
					     
				       PRINTERDRIVERS
			     Ŀ
			     				     
		    For printing cards	      For (selective) fields printing
		  + choice setup-strings	 + choice printerbuffer Y/N
		 + choice page number Y/N		     
		+ choice printerbuffer Y/N		     
			     				     
		    Save if quit program	    Save if quit program
		    	    

				PRINT COMMANDS
		Ŀ
				   CTRL-P		 CTRL-S
	     CTRL-D	       Start automatic	     Start automatic
	   Screendump	       printing cards	     printing fields
	   		as programmed	      as programmed
				      
					      CTRL-Q
					   Stop printing
					   
